所以我有这个音频标签:
<audio src=".....mp3" autoplay id="aud"></audio>
20秒后,我触发了这段代码:
var obj=$('#aud')
obj[0].volume=0;
obj[0].pause();
obj.prop('volume',0);
obj.trigger('pause');
obj.attr('src','');
obj.remove();
console.log('REMOVED!!');
但是毕竟,音频仍在播放吗?
音频标签已被成功删除obj.remove()
,但音频仍在继续。
在console.log()
正确的记录。我没有错误。但是,尽管使用了几种方法来静音,暂停和删除音频标签,但音频仍会继续。
谁能解释为什么?
我需要用盐和火焰清除该音频。任何帮助将不胜感激,这让我发疯了……
因此,我在写这个作为答案时摆弄了这个,并得出以下结论:
手动创建audio
带有autoplay
属性的标记会使该标记甚至在被添加到DOM树2次之前就播放(在较旧的jquery实现中)。即使在将该元素添加到DOM树之后,通常也无法停止两个音频流-当播放第二个流时,其中一个流与该元素断开连接的可能性很大。没那么深究。我在这里转载了这个问题:
当您单击Create w/o autoplay
按钮时,可以适当地暂停它,但是当您单击Create autoplay
它时,它会立即启动(甚至在添加到DOM树之前)2次!您可能没有注意到第二次播放(我也没有),因为当mp3在同一台机器上时,两个音频流几乎完全同步。按下Try stop
将停止音频流之一(您需要等待5秒钟,注意setTimeout)。
另请注意,如果您切换到1.8.3或更高版本的jQuery版本,此问题将不再发生,因此似乎我们俩都当天都在使用旧的jQuery库。^^
因此,有2种解决方案:将jquery版本更新到1.8.3或更高版本,或者创建没有autoplay属性的元素,然后再启动它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句