Javascript 在IE9中设置currentTime

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

我试图在从服务器传输音频src时设置currentTime。在其他浏览器上都可以,但是在IE9上,当我设置currentTime并调用play时,它会跳回到开始

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个位置开始播放(可能它只在暂停时工作)