如果在 ajax 成功函数上调用,声音将不会播放

Posted

技术标签:

【中文标题】如果在 ajax 成功函数上调用,声音将不会播放【英文标题】:Sound won't play if invoked on ajax success function 【发布时间】:2014-10-05 18:18:30 【问题描述】:

我的移动网页中嵌入了一个声音片段,如下所示:

<audio id="sound">
<source src="/assets/sound/mysound.mp3" type="audio/mpeg">
</audio>

我这样称呼它:

$('#sound').get(0).play();

这在我的笔记本电脑和 iPhone 的 chrome 上都可以正常工作。但是,如果我像这样在 ajax 的成功函数中调用它

$.ajax(
    ....
    success: function() 
      $('#sound').get(0).play();
    

在我笔记本电脑的 chrome 浏览器上,它运行良好。但是在 ios 的 chrome 或 safari 上,没有声音播放。

还有其他人遇到这种情况吗?

【问题讨论】:

【参考方案1】:

iOS 对您何时/如何在网络应用中播放音频设置了一些限制。例如,您不能简单地自动播放声音,而是必须从用户事件(点击按钮等)启动它们。

查看更多信息: http://www.ibm.com/developerworks/library/wa-ioshtml5/#N100E8

【讨论】:

我知道用户事件限制,但忘记了。谢谢你的提醒。我现在很确定这就是原因

以上是关于如果在 ajax 成功函数上调用,声音将不会播放的主要内容,如果未能解决你的问题,请参考以下文章

自定义声音不播放推送通知

我目前无法停止通过 ajax 调用在服务网页上播放音频

PortAudio:通过调用函数播放多个生成的声音

在其他 swift 文件中调用时,AVAudioPlayer 不会播放声音

在 AJAX 成功的函数中使用时数组内容不会改变

没有播放声音