我正在使用javascript代码以用户指定的开始时间播放音频

var audio_player = document.getElementById("audi");
//'audi' is ID of audio tag
audio_player.currentTime = audi_start_time;
//Start time from where audio should start to play

audio_player.play();


当我运行网站时,我可以从“ audi_start_time”中指定的时间开始播放音频,但是大多数时候我都会出错


  '试图使用一个不可用或不再可用的对象
  [中断此错误]


audio_player.currentTime = audi_start_time;


任何帮助,将不胜感激。提前致谢

最佳答案

我认为您正在尝试在文档准备好之前设置currentTime

因为当您在window.onlaoad中设置currentTime时,它可以正常工作。

这是您要尝试执行的操作-> jsFiddle demo-1(不起作用)

这是您应该做的-> jsFiddle demo-2(工作)



编辑:

好,我知道了。如果尝试设置动态附加的音频/视频标签的currentTime,则应等待音频标签准备播放。

因此您可以使用oncanplay event进行检测,

例如,

<div id="content"></div>
<button onclick="play()">play</button>

<script type="text/javascript">
function play() {
     var audio = document.createElement("audio");
     audio.controls = "controls";
     audio.innerHTML = '<source src="http://www.w3schools.com/html5/song.ogg" type="audio/ogg" />'+
                       '<source src="http://www.w3schools.com/html5/song.mp3" type="audio/mp3" />';
     var content = document.getElementById("content");
     content.innerHTML = "";
     content.appendChild(audio);
     audio.addEventListener("canplay", function() {
        this.currentTime = 5;
     },true);
     audio.play();
}
</script>​


here is a working jsFiddle demo

关于javascript - 在浏览器中播放音频时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10043186/

10-14 15:10
查看更多