0

私はFlowplayerFlashビデオプレーヤーを使用して、 AnythingSlider内でMP4ビデオを再生しています。スライドショーを停止してユーザーがビデオを表示できるように、ユーザーがビデオのスタートボタンをクリックしたことを検出する必要があります。警告ボックスを取得するためだけにこのコードを使用しようとしましたが、何も実行されません(コードはページの最後、終了</body>タグの前にあります):

<script type="text/javascript">
    $f("player","global/js/flowplayer/flowplayer-3.1.5.swf",{
        onStart: function(clip) {
            alert('player started');                
        }
    });
</script>

Flowplayerは、ブラウザがタグを処理できるかどうかを自動的に検出するhtml5mediaライブラリの一部として実装されています。<video>そうでない場合は、以下のアンカータグをFlowplayerに置き換えます。

<video id="vid" width="372" height="209" 
     poster="global/vid/bbq-poster.jpg" controls preload>
    <source id="videoSource" src="global/vid/BBQ_Festival.mp4" 
        type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' 
        onerror="fallback(this.parentNode)" ></source>
    <a  
         href="global/vid/BBQ_Festival.mp4"  
         style="display:block;width:372px;height:209px; padding-left:5px; "  
         id="player"> 
    </a> 
</video>

したがって、$ f()関数呼び出しはページの最後にあるJavaScriptブロックにあり、プレーヤーに正しくロードする機会を与えます。私は何が間違っているのですか?ありがとう。

更新:Firebugによって示されるように生成されたHTMLは次のとおりです。プレーヤーの「vid」IDを使用してみましたが、それでもうまくいきませんでした。

<object width="100%" height="100%" type="application/x-shockwave-flash" 
  data="http://html5media.googlecode.com/svn/trunk/src/flowplayer.swf" 
  id="vid_api">
  <param value="true" name="allowfullscreen">
  <param value="opaque" name="wmode">
  <param value="always" name="allowscriptaccess">
  <param value="high" name="quality">
  <param value="false" name="cachebusting">
  <param value="#000000" name="bgcolor">
  <param value="config={"play":null,"playlist":[{"url":"http://localhost/cms/global/vid/poster.jpg", 
   "scaling":"fit","fadeInSpeed":0,"fadeOutSpeed":0},
    {"url":"http://localhost/cms/global/vid/BBQ_Festival.mp4", 
    "autoPlay":false,"autoBuffering":true,"scaling":"fit",
    "fadeInSpeed":0,"fadeOutSpeed":0}],
    "clip":{"scaling":"fit","fadeInSpeed":0,"fadeOutSpeed":0},
    "plugins":{"controls":{"url":"http://html5media.googlecode.com/svn/trunk/src/flowplayer.controls.swf",
    "fullscreen":false,"autoHide":"always"}},
    "playerId":"vid"}" name="flashvars"></object>
4

2 に答える 2

1

試しましたか:

$f("player", "global/js/flowplayer/flowplayer-3.1.5.swf", { 
  clip: {
    onStart: function(clip) {
      alert('poop');
    }
  }
}); 
于 2010-05-12T07:35:32.727 に答える
1

onStartの代わりに、onBufferFullを使用します。私はonStartを使用していましたが、ビデオがまだバッファリングされていて、onStartがすでにトリガーされていることがありました。onBufferFullを使用すると、ビデオが最小限にバッファリングされ、実際に画面で再生が開始されます。ビデオの開始直後にイベントをトリガーする必要がある場合は、「初めてバッファリングされた」というフラグを必ず保存してください。onBufferFullは、ビデオが再生される最小値(ドキュメントには3秒と記載されていると思います)がバッファリングされるたびにチャンクで呼び出されます。お役に立てれば。

于 2012-09-27T14:16:51.780 に答える