我有一个用JQuery构建的mp3播放器。我按照一个很好的教程,但是玩家没有擦洗,只是一个你无法改变的进度条。在研究中,我发现了一些可以正常使用的擦洗代码:
$("#seek").bind("change", function() {
audio.currentTime = $(this).val();
$("#seek").attr("max", audio.duration);
});
这一切都很好。但滑块在播放时不会随音频一起移动。我尝试了很多来自不同地方的不同代码,但似乎没有任何工作。我的最新尝试看起来像这样(这是最后一行不起作用):
function showDuration(){
$(audio).bind('timeupdate', function(){
//Get hours and minutes
var s = parseInt(audio.currentTime % 60);
var m = parseInt((audio.currentTime / 60) % 60);
//Add 0 if seconds less than 10
if (s < 10) {
s = '0' + s;
}
$('#duration').html(m + '.' + s);
var valueSlider = 0;
if (audio.currentTime > 0) {
valueSlider = Math.floor((100 / audio.duration) *
audio.currentTime);
}
$('#seek').html('value',valueSlider);
});
}
所有这些只是持续时间显示,但最后一行除外。我添加了尝试更改滑块的值以匹配音频持续时间。我也试过了:
$('#seek').attr('value',valueSlider);
我的滑块HTML看起来像这样:
<div id="tracker">
<input id="seek" type="range" min="0" max="100" value="0"/>
<span id="duration"></span>
</div>
我想也许我为min,max,value投入的值阻止了JQuery动态地改变它,但是当我没有放入它时仍然无效。
答案 0 :(得分:0)
你必须使用jQuery的val()
作为setter来改变值,所以改变这个
$('#seek').html('value',valueSlider);
到
$('#seek').val(valueSlider);