【发布时间】:2014-02-28 16:23:31
【问题描述】:
所以我有这个音频标签:
<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() 正确记录。我没有错误。但是尽管使用了多种方法来静音、暂停和删除音频标签,但音频仍在继续。
谁能解释一下原因?
我需要用盐和火焰清除此音频。任何帮助将不胜感激,这让我慢慢发疯......
【问题讨论】:
-
我认为 html 是在报复您使用自动播放媒体
-
一旦有人点击“播放”按钮,音频标签就会被写入页面。老实说,我不应该受到报应!
-
应该可以...什么浏览器? jQuery 版本?也许是一个遇到问题的 jsfiddle?
-
我知道它应该可以工作,但我无法在 jsFiddle 中重新创建问题 - 这表明它是我的代码,但我需要了解是什么导致音频在播放后继续播放被移除。也许一个更好的问题应该是“在标签被告知静音、暂停和被删除后,音频如何继续播放”——有没有这种情况发生过?我正在检查 DOM,一旦删除,页面中的任何地方都没有其他音频标签。我正在使用 Firefox 28 和 Chrome 25。
-
您写道,您正在手动将音频标签附加到代码中。我相信即使在您将标签添加到 DOM 之前音频就会自动播放,这会弄乱一些东西(可能会开始播放 2 次?)。尝试在没有 autplay 属性的情况下将音频标签附加到您的 DOM 树,并在添加后简单地调用
play()
标签: javascript jquery html audio html5-audio