我正在使用音頻播放器,我希望人們可以使用空格鍵播放和暫停音樂。我有它的工作。不幸的是,該腳本只適用於第一個玩家(當某人點擊歌曲時,玩家部分被加載到屏幕頂部)。所以一旦第一部分消失了。它的播放和暫停功能不再工作。有什麼建議麼。按鍵暫停和播放音頻
$(document).keydown(function(event) {
if (event.keyCode == 32) {
if (!mytrack.paused && !mytrack.ended) {
mytrack.pause();
play.innerHTML = "<i class='fa fa-play'></i>";
window.clearInterval(updateTime);
} else {
mytrack.play();
play.innerHTML = "<i class='fa fa-pause'></i>";
updateTime = setInterval(update, 500);
}
return false;
}
});
全碼
var mytrack = document.getElementById("sound");
var play = document.getElementById("play");
var currentTime = document.getElementById("current-time");
var totalTime = document.getElementById("total-time");
var defaultBar = document.getElementById("default-bar");
var progressBar = document.getElementById("progress-bar");
var barSize;
defaultBar.addEventListener('click', clickedBar, false);
mytrack.addEventListener('loadedmetadata', function() {
mytrack.play();
updateTime = setInterval(update, 500);
play.innerHTML = "<i class='fa fa-pause'></i>";
var minutes = parseInt(mytrack.duration/60);
var seconds = parseInt(mytrack.duration % 60);
if (seconds < 10) {
totalTime.innerHTML = minutes + ":0" + seconds;
} else {
totalTime.innerHTML = minutes + ":" + seconds;
}
});
function playOrPause() {
if (!mytrack.paused && !mytrack.ended) {
mytrack.pause();
play.innerHTML = "<i class='fa fa-play'></i>";
window.clearInterval(updateTime);
} else {
mytrack.play();
play.innerHTML = "<i class='fa fa-pause'></i>";
updateTime = setInterval(update, 500);
}
}
function update() {
if(!mytrack.ended) {
// CURRENT TIME TO READABLE TIME
var minutes = parseInt(mytrack.currentTime/60);
var seconds = parseInt(mytrack.currentTime % 60);
if (seconds < 10) {
currentTime.innerHTML = minutes + ":0" + seconds;
} else {
currentTime.innerHTML = minutes + ":" + seconds;
}
// BAR
var progressBarSize = parseInt(mytrack.currentTime * barSize /mytrack.duration);
progressBar.style.width = progressBarSize + "px";
barSize = defaultBar.offsetWidth;
} else {
currentTime.innerHTML = "0:00";
play.innerHTML = "<i class='fa fa-play'></i>";
// Bar
progressBar.style.width = "0px";
// TIMER
window.clearInterval(updateTime);
}
}
function clickedBar(e) {
if(!mytrack.ended) {
var mouseX = e.pageX - defaultBar.offsetLeft;
var newTime = mouseX * mytrack.duration/barSize;
mytrack.currentTime = newTime;
progressBar.style.width = mouseX + "px";
}
}
何時何時創建了myTrack?如果這是你的第一個球員,然後你創造更多,那麼你現在的處理程序只知道'myTrack' – mczepiel
我用完整的球員代碼編輯帖子。玩家被加載到一個部分。因此,一次只有一個玩家在頁面上。當你點擊一首新歌曲時,前一首歌曲消失。感謝您的評論! –
也許是因爲你將click事件監聽器綁定到了第一個局部區域,但是一旦第一個局部區域消失,事件就不會被綁定到第二個局部區域(player),如果這樣做合理的話。有一個函數在下一個玩家加載後重新綁定它。 –