3

同じプレーヤーで2つの異なるYouTube動画を再生したいのですが、最初の動画は2番目の動画の前に再生されます(プレロール広告として機能します)。2本の動画のみで構成されるカスタムプレイリストの一種。

私が本当に必要としているのは、プレーヤーがアイドル状態のときに、プレロールではなく、メインビデオ(2番目のビデオ)の画像を表示する必要があるということです。

だから、私はyoutube apiを使用してメインビデオをロードし、次にそれを停止し、次にプレロールをロードし、プレロールを再生した後にメインビデオを再生してから停止する必要があると思いました。

これらのタスクを実行するために同じコードをコピーして貼り付けようとしましたが、行き詰まりました。誰かが私にこれの実用的な例を教えてもらえますか?または、少なくともいくつかのアドバイス?どうもありがとう。

4

1 に答える 1

1

これは少し大雑把ですが、状態変更イベントをリッスンすることでタスクを実行します。プレロールが終了に近づいているときにメインビデオのキューに基づいてスマートな先読み監視を統合することで、応答性を高めることができます。しかしとにかく、これは少なくともあなたが始めるはずです:

    <div id="player"></div>
      <script>
      var seenPreroll=false;
      var preroll='rl1qKqlYy8M';
      var mainfeature='u1zgFlCw8Aw';
      var playingId='';
      var tag = document.createElement('script');
      tag.src = "//www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: mainfeature,
          events: {
            'onStateChange': function(event) {
                        if (event.data==1&&seenPreroll==false) {
                                player.pauseVideo();
                                player.loadVideoById(preroll);
                                playingId=preroll;
                                seenPreroll=true;
                                player.playVideo();
                        }
                        else if (event.data==0&&playingId==preroll) {
                                player.loadVideoById(mainfeature);
                                playingId=mainfeature;
                                player.playVideo();
                        }
                }
          }
        });

}
</script>
于 2012-10-09T18:13:29.057 に答える