Javascript 在IE9中设置currentTime
我试图在从服务器传输音频src时设置currentTime。在其他浏览器上都可以,但是在IE9上,当我设置currentTime并调用play时,它会跳回到开始Javascript 在IE9中设置currentTime,javascript,html,audio,Javascript,Html,Audio,我试图在从服务器传输音频src时设置currentTime。在其他浏览器上都可以,但是在IE9上,当我设置currentTime并调用play时,它会跳回到开始 this.playAtTime = function(aTime) { Debug("play at time audio: " + aTime); Debug("this.mAudioPlayer.currentTime: " + this.mAudioPlayer.currentTime); this.s
this.playAtTime = function(aTime) {
Debug("play at time audio: " + aTime);
Debug("this.mAudioPlayer.currentTime: " + this.mAudioPlayer.currentTime);
this.startTime = aTime;
if (this.mAudioPlayer.src != this.mAudioSrc) {
this.mAudioPlayer = new Audio();
this.mAudioPlayer.src = this.mAudioSrc;
this.mAudioPlayer.load();
this.mAudioPlayer.play();
this.mAudioPlayer.addEventListener('loadedmetadata', function(){ this.currentTime = aTime / 1000.0; }, false );
}
else if ((isChrome() || isMobileSafari()) && aTime == 0) {
this.mAudioPlayer.load();
this.mAudioPlayer.currentTime = aTime / 1000.0;
this.mAudioPlayer.play();
Debug("Reloading audio");
}else{
this.mAudioPlayer.currentTime = aTime / 1000.0;
this.mAudioPlayer.play();
}
};
这不是缓冲的问题,因为无论它等待多长时间,在设置时间都不会成功。尝试交换下面两行的位置:
this.mAudioPlayer.play();
this.mAudioPlayer.currentTime = aTime / 1000.0;
成功了!非常感谢。我很想知道为什么它能在其他浏览器上工作,而不是IE上。我猜.play()总是将currentTime设置为0,并且只能在播放时设置currentTime?即使在播放时,currentTime也可以用于设置播放音频的时间,因此上述方法可以工作,但我不知道为什么在调用play()时IE从第0个位置开始播放(可能它只在暂停时工作)