多个声音相互重叠 <audio>
Posted
技术标签:
【中文标题】多个声音相互重叠 <audio>【英文标题】:Multiple sounds overlapping each other <audio> 【发布时间】:2014-03-04 01:32:12 【问题描述】:我正在播放音频文件,但在单击#messageCenter 区域内的任何其他文件后,我需要停止任何其他声音。里面没有 isPlaying 参数有没有容易做到这一点? Stack 中唯一对此的引用是一个游戏插件。
$("#messageCenter area").on( "click", function()
var source = "assets/audio/" + $(this).attr('id') + ".wav";
var audio = $('#audio');
var sound = new Audio(source);
sound.play();
);
【问题讨论】:
保留对已播放的其他声音的引用并调用暂停 这个问题:Click Here 可能有用吗? 这仍然会导致多次点击播放其他歌曲。这个音频元素需要一个 isPlaying:Bool 我怀疑。因为我在#messageCenter 区域内有超过 8 个声音。 【参考方案1】:试试下面的代码(抱歉,我没有测试):
$("#messageCenter area").on( "click", function()
var audio = $('#audio');
var lastSound = audio.data('lastSound');
if (lastSound) lastSound.pause();
var source = "assets/audio/" + $(this).attr('id') + ".wav";
var sound = new Audio(source);
sound.play();
audio.data('lastSound', sound);
);
【讨论】:
这按预期工作!你能澄清一下 audio.data('lastSound') 在做什么吗以上是关于多个声音相互重叠 <audio>的主要内容,如果未能解决你的问题,请参考以下文章