我正在使用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;
任何帮助将不胜感激。提前谢谢
答案 0 :(得分:2)
我认为您在文档准备就绪之前尝试设置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>
答案 1 :(得分:0)
在设置当前时间之前播放音频。我整晚都在桌子上敲了敲头,然后我找到了这个帖子:https://github.com/johndyer/mediaelement/issues/243。这最终为我工作:
audioplayer.src = source;
audioplayer.play();
audioplayer.addEventListener('playing', function () {
if (loadPlayed == false)
{
audioplayer.currentTime = Time;
audioplayer.play();
loadPlayed = true;
}
else {
audioplayer.removeEventListener('playing', this);
}
});