Javascript 当另一个音轨启动时,如何停止一个音轨?(仅包含文本链接)
我试图在同一网页上播放音频文件列表,其中只有一个文本链接作为播放按钮,我发现以下解决方案非常适合我: (感谢@linstantnoodles提供此脚本!)Javascript 当另一个音轨启动时,如何停止一个音轨?(仅包含文本链接),javascript,audio,Javascript,Audio,我试图在同一网页上播放音频文件列表,其中只有一个文本链接作为播放按钮,我发现以下解决方案非常适合我: (感谢@linstantnoodles提供此脚本!) //音频/控制对列表 var播放列表=[{ “音频”:document.getElementById('song1'), “控件”:document.getElementById('song1-control') }, { “音频”:document.getElementById('song2'), “control”:document.g
//音频/控制对列表
var播放列表=[{
“音频”:document.getElementById('song1'),
“控件”:document.getElementById('song1-control')
}, {
“音频”:document.getElementById('song2'),
“control”:document.getElementById('song2-control')
}];
对于(变量i=0;i
我对这段代码唯一的问题是,如果播放一首歌,我开始播放第二首歌,这两首歌同时播放。我已经尝试了很多方法来解决这个问题,但是没有一种有效——我需要如何调整它,以便在第二个问题开始时第一个问题暂停或停止?谢谢 你可以这样做。当一个新的音频启动时,循环播放列表数组,找到所有不是刚启动的音频元素并停止它们 以下是一个例子:
....
var method = pause ? 'pause' : 'play';
audio[method]();
if(!pause){
playlist.forEach(function(pl){
if(pl.audio !== audio){
pl.audio.pause();
pl.audio.currentTime = 0;
pl.control.innerHTML = 'Listen';
}
});
}
....
你可以这样做。当一个新的音频启动时,循环播放列表数组,找到所有不是刚启动的音频元素并停止它们 以下是一个例子:
....
var method = pause ? 'pause' : 'play';
audio[method]();
if(!pause){
playlist.forEach(function(pl){
if(pl.audio !== audio){
pl.audio.pause();
pl.audio.currentTime = 0;
pl.control.innerHTML = 'Listen';
}
});
}
....
谢谢你的快速回复!它不适用于
pl.audio.stop()
,但当我将其更改为pl.audio.pause()时,它工作得很好;pl.audio.currentTime=0代码>。唯一的缺点是,第一个文件中的textlink playbutton仍然设置为“暂停”-是否有可能将之前的所有按钮重置为“侦听”?我试图更改innerHTML值,但之后我无法再暂停曲目…@modestus我编辑了我的答案以解决所有这些问题。感谢您的快速回复!它不适用于pl.audio.stop()
,但当我将其更改为pl.audio.pause()时,它工作得很好;pl.audio.currentTime=0代码>。唯一的缺点是,第一个文件中的textlink playbutton仍然设置为“暂停”-是否有可能将之前的所有按钮重置为“侦听”?我试图更改innerHTML值,但是我不能再暂停曲目了…@modestus我编辑了我的答案来解决所有这些问题。