jQuery UI を使用して、html5 オーディオ プレーヤー用のスライダーを作成しました。私が抱えている問題は、スライダー自体がtimeupdate
トラック自体の時間の変化 ( ) に反応しないことです。ただし、スライダーと曲のドラッグにtime
応答し、オーディオの時間を変更することによっても応答します。
left: 0%
jQueryがこれを変更する必要があると述べていても、再生時にスライダーに一定のスタイルがあるため、トラックの再生時にスライダーが他の何かの影響を受けているようです。jQuery をright: pos +'%
適切なスタイルに設定すると、オーディオに合わせて動的に変更されますが、left: 0%
スタイルは維持されます。コンソールにエラーが表示されないので、何が起こっているのかわかりません。
$(song).on('timeupdate', function() {
var rem = parseInt(song.duration - song.currentTime, 10),
pos = (song.currentTime / song.duration) * 100,
mins = Math.floor(rem/60,10),
secs = rem - mins*60;
$('.body_container .player .time').text('-' + mins + ':' + (secs > 9 ? secs : '0' + secs));
if(manualSeek = true){$('.body_container .player .ui-slider-handle').css({left: pos + '%'}); }
if (loaded = true) {
loaded = true;
$('.body_container .player .slider').slider({
max: song.duration,
slide: function() {
manualSeek = true;
},
stop:function(e,ui) {
manualSeek = false;
song.currentTime = ui.value;
}
});
}
});
補足:誰かが前の質問でこれを尋ねたので、私は言いたいと思いました。song
が定義されていますが、必要ないので含めていません。プレーヤーの data-attribute から取得したトラック URL はsong = new Audio(url);
どこにありますか。url