Javascript ::是audio.pause将audio.currentTime值重置为0?

时间:2015-04-28 11:58:02

标签: javascript function audio setinterval addeventlistener

我的代码完美地工作除了这样一个事实,即它不会暂停轨道,而是回到轨道的开头。

这是我的代码:

var audio=new Audio();

var hezi=document.querySelector('#player>.button.hand');
var gangina=("textContent" in document)?"textContent":"innerText";

hezi.addEventListener
(
    'click',
    function()
    {

        if(audio.paused)
        {
            audio.src="Nadav Guedj - Golden Boy (Eurovision 2015 - Israel - Karaoke).mp3";
            hezi.innerHTML="►";
            audio.play();
        }
        else
        {
            hezi.innerHTML="||";
            audio.pause();
        }

    }
);

我将假设要解决此问题,我需要使用audio.currentTime存储该曲目的window.setInterval值,并使用最后audio.currentTime值来播放该曲目停止的最后一点,但我很想知道是否有大陆方式使暂停/播放按钮功能正常(更不用说如果我通过window.setInterval存储最后一个值的事实,它将不是100%准确,因为我依赖于间隔值,而不是用户暂停轨道的确切特定点。)

2 个答案:

答案 0 :(得分:2)

由于这一行,它将回到起点,

        audio.src="Nadav Guedj - Golden Boy (Eurovision 2015 - Israel - Karaoke).mp3";

删除它,然后audio.play将从您暂停的地方继续。 fiddle demo

答案 1 :(得分:1)

当用户暂停播放器时,尝试在click事件处理程序中将currentTime存储在变量中。

通过这种方式,您可以获得音乐停止的确切时刻,只需将其存储在对象范围内的变量上。