【发布时间】:2016-02-24 06:41:23
【问题描述】:
我使用的是 .mp3 文件,.mp3 文件在直接查看以及使用 HTML5 音频标签嵌入时播放正常,但是在 JS 中创建 HTML5 音频标签时它不会播放! (很奇怪)
我在任何其他浏览器/设备中都没有这个问题,例如桌面 - Chrome 可以完美运行。
sound = document.createElement('audio');
sound.setAttribute('src', 'sound.mp3');
sound.play();
我测试了 sound.canPlayType('audio/mpeg') 并且结果为 true(因此它受支持)。
也许 Android - Chrome 中存在错误? (是最新版本)
【问题讨论】:
-
或者你应该让浏览器在播放之前加载源代码。如果可能,请提前创建
audio元素。监听由audio元素触发的canplay或canplaythrough事件,以了解何时有足够的数据开始播放。 -
也许移动 Chrome 不允许您以编程方式触发播放?您是否在用户触发的事件上执行此操作?也许还可以尝试将元素添加到 DOM。
-
@AlexanderO'Mara 我知道。但这在这里没有任何意义,OP 也测试了这个假设。如果
audio不能以编程方式播放,那就是这样(但也请检查我的假设)。您可以尝试使用 Web Audio API 作为替代方案。它的代码多一点,但功能也更强大。 -
@magreenberg 我们已经知道,当
audio元素是 HTML 的一部分时,音频可以正常播放。所以它不可能是网络的东西。
标签: javascript html html5-audio