Javascript 在浏览器中播放音频时出错

Javascript 在浏览器中播放音频时出错,javascript,Javascript,我正在使用javascript代码使用用户指定的starttime播放音频 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(); 当我运行网站时,我能够从

我正在使用javascript代码使用用户指定的starttime播放音频

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();
当我运行网站时,我能够从“奥迪开始时间”中指定的时间播放音频,但大多数时候我都会出错

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


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

我想您是想在文档准备就绪之前设置
当前时间

因为在window.onlaoad中设置currentTime时,它正在工作

以下是您正在尝试执行的操作->(不工作

以下是您应该做的->(工作


编辑:

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

所以你可以用

比如说,

<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>​

玩
函数播放(){
var audio=document.createElement(“音频”);
audio.controls=“controls”;
audio.innerHTML=“”+
'';
var content=document.getElementById(“内容”);
content.innerHTML=“”;
内容。附加子项(音频);
addEventListener(“canplay”,function()){
这个.currentTime=5;
},对);
音频播放();
}
​

在设置当前时间之前播放音频。我整晚都在桌子上捶着头,然后我发现了这条线:。这最终对我起了作用:

audioplayer.src = source;
audioplayer.play();
audioplayer.addEventListener('playing', function () {
    if (loadPlayed == false)
    {
        audioplayer.currentTime = Time;
        audioplayer.play();
        loadPlayed = true;
    }
    else {
        audioplayer.removeEventListener('playing', this);
    }
}); 

代码中的“reply”是什么?reply是JSON对象,您可以忽略它。奥迪开始时间包含音频的开始时间,实际上我处理的是音频和视频,我没有硬编码标签。当我们拖放文件时,会创建标记,因此您的代码只能使用HTML中的硬编码标记。因此,请告诉我应该如何设置当前时间动态您更新的代码没有完全播放,而是停留在曲目的开始时间直到指定的结束时间。在特定的指定时间内,我只能听到嘟嘟声。@SagarHugar,上一个JSFIDLE演示程序正在google chrome中运行。抱歉,不知道为什么它不适用于您。您可以在addEventListener:
audioplayer.addEventListener('playing',function(){},{once:true})中指定once选项,而不是创建loadPlayed变量。
audioplayer.src = source;
audioplayer.play();
audioplayer.addEventListener('playing', function () {
    if (loadPlayed == false)
    {
        audioplayer.currentTime = Time;
        audioplayer.play();
        loadPlayed = true;
    }
    else {
        audioplayer.removeEventListener('playing', this);
    }
});