javascript - jQuery:播放多个音频而不重叠
问题描述
我有一个网页,其中 3 个链接块播放 3 首不同的歌曲(每个链接块 1 首歌曲)。我发现了一个使用事件委托的代码,因此当用户单击新链接块时它们不会重叠。问题是如果你播放链接A,然后链接B,然后回到链接A,你需要双击链接A才能播放歌曲。
这是代码:
$('.play').click(function(){
var $this = $(this);
// starting audio
var audioID = "sound" + $(this).attr('id');
$this.toggleClass('active');
if($this.hasClass('active')){
$("#" + audioID).trigger('play');
} else {
$("#" + audioID).trigger('pause');
}
});
document.addEventListener('play', function(e){
var audios = document.getElementsByTagName('audio');
for(var i = 0, len = audios.length; i < len;i++){
if(audios[i] != e.target){
audios[i].pause();
}
}
}, true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<audio loop id="sound1" src="audio1.mp3"> </audio>
<audio loop id="sound2" src="audio2.mp3"> </audio>
<audio loop id="sound3" src="audio3.mp3"> </audio>
任何帮助都非常感谢!谢谢,祝你有美好的一天!
解决方案
推荐阅读
- c# - 在没有密钥的情况下访问 OData 实体的属性时获取 404 Not Found
- python - 如何根据熊猫中的这些索引查找子字符串的第 n 次出现的索引并子集字符串
- outlook - 如何避免 VSTO Outlook 加载项因启动缓慢而被禁用?
- java - 不带键的 JSON 数组的 POJO [Long, Double]
- python - 对 diffie-hellman-group1-sha1 的扭曲支持
- amazon-web-services - 是否可以使用 Lambda 触发器 PreSignUp_AdminCreateUser 生成用户名?
- listview - 如何扩展 list.generate 中的元素
- featuretools - 如何从通过深度特征合成创建的 feature_def 中选择特征
- javascript - 使用 jsPDF 'bad /BBox' 下载带有自定义字体的 pdf 时出现问题
- json - Ionic JSON,将卡片添加到收藏夹