0
我正在使用HTML5音頻播放器。我正在實施播放列表。我正在使用「已結束」事件操作來播放下一個音頻媒體文件。但是,在媒體文件結尾處,「結束」事件被多次觸發。 (當我登錄的消息會出現一個以上的時間)HTML5 AudioPlayer事件操作「已結束」正在致電超過一次
這是我的事件監聽器:
//Event Listener
function addPlayerListener() {
console.log("Recording Index: "+combinedSessionIndex);
var audio = document.getElementById("playarea");
audio.addEventListener('ended', function() {
sessionsToPlay = $("#audio_files").val().split(',');
console.log ("In Recording End Event Listener...!!!"+combinedSessionIndex);
//It Shows Length '1' not '0'
if (sessionsToPlay.length == 1) {
console.log("Returned Due to Session To Play length..!!!")
return;
}
//As CombinedSessionIndex Starts with 1
if (combinedSessionIndex == sessionsToPlay.length) {
console.log("Returned Due to All Session To Play Got Finish..!!!")
$("#audio_files").val("");
sessionsToPlay = [];
combinedSessionIndex = 0;
return;
}
var filePath = '${properties["RECORDED_SESSION_RETREIVAL_PATH"]}';
filePath = filePath + sessionsToPlay[combinedSessionIndex] + ".mp4";
combinedSessionIndex++;
audio.src = filePath;
audio.play();
}, false);
}
所以,當一個特定的媒體文件的結尾,它跳過下一個媒體文件,並開始播放下一個(以後跳過1,2)文件。對於每個跳過的媒體文件,控制進入事件監聽器,這表明在單個調用結束時重複調用事件監聽器。
首次通過我這個代碼播放音頻文件:
//PlayBack Session
function play(data) {
//Just to deal with a scenario that when we play a combined session and in the mean while we start listening any other single
//session, then after completion of this single session, remaining previous combined session should not resume.
//console.log("Re-setting Player ...!!!");
//$("#audio_files").val("");
//sessionsToPlay = [];
//combinedSessionIndex = 0;
var filePath = '${properties["RECORDED_SESSION_RETREIVAL_PATH"]}';
filePath = filePath + data + ".mp4";
console.log("filePath: " + filePath);
if (data == null || data == "") {
alert("Nothing to Play ...!!!");
return;
}
$("#playarea").attr({
"src": filePath,
"autoplay": "autoplay"
})
}
而在這之後,當此結束,進一步的剪輯播放使用「結束」事件監聽器。
我無法找到原因。如果我做錯了什麼,請引導我嗎?
在此先感謝:)
如果你改變你的事件處理程序只有一行代碼調用console.log('ENDED事件處理');'並刪除所有其他代碼,你還會得到多個事件嗎?我想知道你在事件處理程序裏面做的事情是否導致一個新的結束事件,例如,如果沒有找到音頻文件,或者是令人難以置信的短,或者一些其他類似的問題? – Fenton 2014-09-10 13:17:19
但播放下一個媒體文件的代碼將保持在那裏? – 2014-09-10 13:22:12
現在拿出來,因爲我們想測試你是否得到了沒有任何代碼的多個事件。 – Fenton 2014-09-10 13:25:35