これは比較的簡単なことのように思えますが、Web 上の例の欠如 (および JS API の非推奨) に頭が回転しているので、ここに進みます。YouTube ビデオが特定の時間に達したときに実行するコードが必要です。この例は、こことここで見ることができます。
私がやろうとしていることは、はるかに複雑ではありません。ビデオが 3 秒になったら、ページにテキストを入れたいと思います。それでおしまい。
http://jsfiddle.net/StephanieQ/2sj9smnd/
var youtubetime;
function onPlayerStateChange(event){
if(event.data==1) { // playing
myTimer = setInterval(function(){
youtubetime = Math.round(player.getCurrentTime()*10)/10;
$("#timeHolder").text(youtubetime);
//return youtubetime;
}, 100);
}
else { // not playing
clearInterval(myTimer);
}
}
if( youtubetime > 3 ) {
$("#results").text("Working!");
しかし、うまくいきません。parseFloat (player.getCurrentTime(); は数値を返す必要があるため、これは必要ないはずです) を試しましたが、役に立ちません。下部の div に小数点以下 1 桁までの現在の時刻が表示されているため、使用している変数が定義され、機能していることは明らかです。
なぜこれが機能しないのですか?とてもシンプルなようです...
注: YouTube の JS API は廃止されたため、iframe API のみ。
編集: setInterval が私の救いの鍵を握っています!
setInterval(function () {
if (youtubetime > 3) { $("#results").text("Works!"); } }, 100);
私はアホです...