在 iOS 中的 ajax 响应中播放 html5 音频

Playing html5 audio in ajax response in iOS

本文关键字:播放 html5 音频 响应 iOS 中的 ajax      更新时间:2023-09-26

经过大量的谷歌搜索和研究,我发现iOS阻止了html5音频和视频的自动播放。音频和视频只能作为对点击事件的响应进行播放。

现在,我又有了一个问题。我经营着一个音乐网站,里面有很多用户生成的播放列表。单击播放后,我发出 ajax 请求以获取跟踪 URL,然后加载它们并播放它们。iOS 不会将此视为播放音乐的同步单击事件,因此单击播放按钮时不会开始播放音乐。我必须单击播放器控件的暂停和播放按钮才能使其开始播放(基本上只使用 pause() 和 play())。

我只是想不出该怎么办。 在点击事件之前预先加载所有 MP3 URL 是不可行的。还有其他方法可以完成此操作吗?

我知道这是一个古老的问题,但对于遇到这个问题的人来说,有一个简单的解决方案,即直接从点击处理程序播放简短、无声的声音。 理想情况下,这将是您已经获取和缓存的声音文件。

之后,您将能够从其他处理程序启动播放,即使是那些没有直接用户交互的处理程序。(例如您的 AJAX/XHR 响应)

好的,经过一番胡闹和研究,我发现一键获取和播放播放列表的唯一方法是使用同步请求而不是 AJAX 请求。页面将在请求加载时冻结,但这似乎是唯一的出路。