AudioPerturber / static /js /audio-table.js
xljesse's picture
Upload 113 files
2c205e1 verified
// Audio Table Control Scripts
document.addEventListener('DOMContentLoaded', function() {
const audioElements = document.querySelectorAll('.audio-player, audio[controls]');
// 当播放一个音频时,暂停其他所有音频
function pauseOtherAudios(currentAudio) {
audioElements.forEach(audio => {
if (audio !== currentAudio && !audio.paused) {
audio.pause();
}
});
}
// 为每个音频元素添加播放事件监听器
audioElements.forEach(audio => {
audio.addEventListener('play', function() {
pauseOtherAudios(this);
});
// 加载开始
audio.addEventListener('loadstart', function() {
this.classList.add('loading');
});
// 加载完成
audio.addEventListener('canplay', function() {
this.classList.remove('loading');
});
// 错误处理
audio.addEventListener('error', function() {
console.log('Audio loading failed:', this.src);
this.classList.remove('loading');
});
});
// 添加键盘控制(可选功能)
document.addEventListener('keydown', function(e) {
// 按空格键暂停所有音频
if (e.code === 'Space' && e.target.tagName !== 'INPUT') {
e.preventDefault();
audioElements.forEach(audio => {
if (!audio.paused) {
audio.pause();
}
});
}
});
});