Javascript::audio.pause是否将audio.currentTime值重置为0?
我的代码运行得很好,除了它没有暂停音轨而是回到音轨的开头 这是我的密码:Javascript::audio.pause是否将audio.currentTime值重置为0?,javascript,function,audio,setinterval,addeventlistener,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() {
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%准确,因为我依赖的是间隔值,而不是用户暂停曲目的确切特定点).当用户暂停播放机时,尝试将click事件处理程序上的currentTime存储在变量中
通过这种方式,您将获得音乐停止的确切时刻,只需将其存储在对象范围之外的变量上。由于这一行,它将返回到开头
audio.src="Nadav Guedj - Golden Boy (Eurovision 2015 - Israel - Karaoke).mp3";
删除该选项,然后audio.play将从暂停的位置继续 所以。。。换句话说,audio.pause是否将audio.currentTime值重置为0,这是解决此问题的唯一解决方案(将最后一个值存储在停止的位置)?实际上,我不熟悉audio的javascript API,但您可以在调用audio.pause前后检查currentTime值来回答这个问题。
audio.pause()
不会更改当前时间值。看@mido22的答案。是的,我自己想出来了:-)