2010-12-14 4 views
1
function playPlaylist(trackstemp) { 
    trackstemp = trackstemp.split(' '); 
    for (i=0; i < trackstemp.length; i++){ 
     tracks[i] = trackstemp[i]; 
    } 
    numoftracks = tracks.length - 1; 
    currenttrack = 0; 
    loadNewVideo(tracks[currenttrack]) 
} 

function loadNewVideo(id) { 
ytplayerid.loadVideoById(id, 0); 
} 

に警告していない限り、loadvideo機能文句を言わない作業を、YouTubeのAPIを使用している間、私は(PREVを持っている)とloadNewVideo(トラック[currenttrack])を呼び出すことでうまく動作する次の()関数ではなく、最初のビデオは、loadNewVideo()関数内で警告(id)した場合にのみ機能します。私は動画ID最初

これはなぜ起こっているのか?

答えて

1

onYouTubePlayerReadyを使用していますか?プレイヤーの準備ができていますか?

function onYouTubePlayerReady(){ 
    //Call you first track here 
} 
+0

これは、ありがとう! –

0

alertの効果は、ytplayerid.loadVideoById(id, 0);の実行をコード内の競合条件を満たすように遅延させることです(たとえば、関数がまだ存在しない、または関数の依存関係がまだ解決されていないなど)。 。

最初のloadNewVideoは、他のすべてのスクリプトがロードされ、DOMが準備完了(つまり、window.loadイベントに関数をアタッチすること)された後に発生することを確認してください。

+0

私はこれに感謝の返事をします。 –

0

これを分けて、独自のスクリプトタグに入れます。

<script type="text/javascript" language="javascript"> 
    function onYouTubePlayerReady(playerid) { 
    ytp = document.getElementById('ytplayer');  
    ytp.mute(); 
    }; 
</script> 
関連する問題