在播放时,无法使范围滑块与音频一起移动

时间:2016-10-15 19:38:07

标签: jquery input slider html5-audio audio-player

我有一个用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动态地改变它,但是当我没有放入它时仍然无效。

1 个答案:

答案 0 :(得分:0)

你必须使用jQuery的val()作为setter来改变值,所以改变这个

$('#seek').html('value',valueSlider);

$('#seek').val(valueSlider);