1

私は 1 つのページに Youtube プレーヤーを埋め込んでおりplayer.getDuration()、'player.getCurrentTime()' を使用して合計秒数と現在の秒数を検出しています。次のように、YouTube の再生秒数に対応する jQuery スライダーを作成しました。

   $('#progressbar').slider({
        value: 0,
        orientation: "horizontal",
        range: "min",
        min:0,
        max:songDuration,
        animate: true,
        change: function(event, seekto){
            //We got the volume.value -> Set it to the video;
            player.seekTo(seekto.value);
        }
    });

ここで、songDuration は現在の曲の長さの合計を表します。また、変更関数 seekto は、ビデオ内でシークする秒数を表します。

また、私はこのコードを持っています:

   setInterval(function(){
            $("#progressbar").slider({max: player.getDuration()});
            $("#progressbar").slider({value: player.getCurrentTime()});
            $('.current_elapsed').html(getPropperDuration(Math.floor(player.getCurrentTime())));
            },1000);

再生された秒数でスライダーを最初から最後まで更新します。
問題は、プレーヤーが 1 秒のごく一部を繰り返すか、setInterval 関数が 1 秒ごとに Youtube プレーヤーの秒数を更新するのと同じ秒を繰り返すことです。これにより、プレーヤーは 1 秒の小さな断片を繰り返します。

同じスライダーを使用してビデオをシークし、ビデオの合計経過時間を表す回避策はありますか?

4

0 に答える 0