2015-12-21 48 views
2

我有一個代碼,我想在上一首曲目結束時播放下一首歌曲,但是我遇到了問題,當我開始再次播放上一首歌曲時,「結束」事件觸發了更多一次,我不知道如何修復它爲什麼音頻html5的「結束」事件觸發不止一次?

AudioPlayer.prototype.listenToEndedTrack = function() { 
    var _this = this ; 
    this.audioPlayerUid.addEventListener("ended", function() { 
     console.log("Ended"); 
     _this.audioPlayerUid.removeEventListener('ended'); 
    }) ; 
    } 
+0

_this是不一樣的對象,因爲這 –

+0

是的,它是。 _這是AudioPlayer實例。 – aGoodRussianGuy

+0

不,它們有不同的指針 –

回答

0

您還沒有刪除事件偵聽器,因爲它需要偵聽器以及事件類型。

基於您的代碼示例,這樣的事情應該工作:

AudioPlayer.prototype.listenToEndedTrack = function() { 
    var _this = this; 

    function listener() { 
     console.log("Ended"); 
     _this.audioPlayerUid.removeEventListener("ended", listener); 
    } 

    this.audioPlayerUid.addEventListener("ended", listener) ; 
} 
+0

是的,謝謝你的回答,但它不起作用,如果我改變時間軸的位置 – aGoodRussianGuy

+0

你可以發佈一個jsfiddle不工作的代碼嗎?很高興看到你到底面臨着什麼。 – BrettJephson

相關問題