1

ビデオプレイリストを再現するために、このスクリプトを自分のサイトに追加しました。

<script type="text/javascript" src="swfobject.js"></script>  
<div id="ytapiplayer">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script type="text/javascript">
var params = { allowScriptAccess: 'always',
allowFullScreen: 'true' };
var atts = { id: 'myytplayer' };
swfobject.embedSWF("https://www.youtube.com/v/videoseries?listType=playlist&list=PLBA9E733B5C8314DE&autoplay=1&modestbranding=1&enablejsapi=1&playerapiid=ytplayer&version=3", "ytapiplayer", "640", "360", "8", null, null, params, atts);
function onYouTubePlayerReady(myytplayer) {
        ytSwfPlayer = document.getElementById( 'myytplayer' );
        ytSwfPlayer.setShuffle(1);
}
</script>

setShuffle関数は機能しません!!! あなたは私に解決策を提案することができますか?

4

3 に答える 3

4

これはプレーヤーのバグのようです。このバグをチームに報告しました。今後、https://code.google.com/p/gdata-issues/issues/entry?template=YouTube%20( Defect%20Report)でバグを報告できます。

回避策として、JS API を使用して自分でシャッフルすることができます。ビデオが終了したら、呼び出しplayVideoAtて乱数を渡すことができます。

于 2012-10-17T17:41:11.713 に答える
1

少し遅れてコマンドを起動すると、setShuffle が機能することに気付きました。このようなもの:

function onPlayerReady(event) {
    event.target.mute();
    setTimeout( function() { 
        event.target.setShuffle(true); 
        event.target.setLoop(true);
    }, 2000);
}

直接起動すると、間違いなく機能しません(フラストレーションに気づきました)。

于 2016-02-05T17:13:02.233 に答える
1

問題は、Youtube プレーヤーにプレイリスト キューをロードした場合、現在再生中のトラックの最後から次のトラックが自動的に開始されることです。

したがって、トラック終了イベント (これはevent.data = 0) をバインドしてから、YouTube プレーヤーに次の 2 つのことを行わせる必要があります。

  1. 遊ぶのやめて
  2. メソッドを呼び出して、ランダムなインデックスで新しいトラックを再生しplayVideoAtます。

同じトラックを何度も繰り返さないようにする簡単な解決策は、再生された idx をリストに保存することです。shuffle次に、 0 とキューの長さの間のランダムな整数を生成するような関数が必要です。

function getRandomId() {
    var random_id = 0
    while(played_idx.indexOf(random_id) != -1) {
      random_id = Math.floor(Math.random * playlist.length)
    }
    return random_id
}

次に、 を呼び出すだけplayVideoAt(random_id)です。

于 2014-02-27T14:52:07.517 に答える