2012-03-31 9 views
8

JS APIを使用してYouTubeのchromelessプレーヤーを使用しようとしていますが、seekto()関数に問題があります。YouTube APIのseekTo関数が機能しない

問題は時々発生します(私は問題が発生したときはわかりません)、読み込まれていないビデオ内のポイントに戻るseekTo()関数を呼び出すと、現在の時刻に戻っていません。

  1. は、私は、ビデオの再生を開始 - > loadVideoById():これは私が何をすべきかです

    (ビデオを想像は240秒の長さです)。

  2. 私はビデオの真ん中に移動しましょう - > seekTo(120)
  3. ビデオは私が尋ねた位置に正しくジャンプします。
  4. 私は、ビデオの逆方向への25%の時間を移動しよう - > seekTo(60)
  5. は時々映像が60にジャンプして戻るが、より頻繁に、それだけだから、120

に戻り、あります誰かがこの問題を抱えていますか?

+0

私はこの正確な問題を抱えています。 – wilsonpage

+0

+1。ジミーの提案はそれをカットしない。それは、YouTubeが新しいバッファを開始しなければならない後、遠隔地を探した後でしか失敗しないようです。 – guidupuy

答えて

4

いくつかのコードを投稿すると、お手伝いしますが、試してみましたplayer.seekTo(60, true); - 2番目のパラメータは重要です。これをtrueに設定すると、プレーヤーは新しいリクエストをサーバーに送信します。

0

私はあなたが説明したのと同じ問題がありました。私が知ったことは、ビデオ期間のAPIを照会した後に逆方向の場所を探していると、動作するように見えるということです。例えば

、これは私のテストで:

var duration = ytplayer.getDuration(); 
ytplayer.seekTo(0, true); 

それは常に初期位置に戻ったことを私に示しました。

0

私は同じ問題がありますが、これらの解決策のどれも私のために働いていません。

「プレイヤーがその時間の前に最も近いキーフレームに進みます。私はそれがHTML5ビューア(ChromeとFirefoxの)

function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING){ // for Chrome and Firefox to "restart" properly 
     var ct = player.getCurrentTime(); 
     var dur = player.getDuration(); 

     if (ct > (dur-.5)){ 
      player.seekTo(0, true); 
     } 
    } 
} 
0

はそれが言うのdocに、気をつけてと協力を得るためにこれを使用して終了しましたプレーヤーがすでにを探しているビデオの部分をダウンロードしていない限り、プレーヤーはFlash Playerのseek()メソッドによって指定された指定時刻の前後に最も近いキーフレームに進みますNetStreamオブジェクト(詳細については、Adobeのドキュメントを参照してください)。

https://developers.google.com/youtube/js_api_reference?hl=fr#seekTo

関連する問題