我使用 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
已定义我只是没有包含它,因为它不需要。从播放器的数据属性中获取的曲目 url 在song = new Audio(url);
哪里。url