在移动旅行中自动播放音频

Sim*_*mon 15 audio html5 mobile-safari autoplay

在我被炸死之前,我知道这不起作用,因为Apple担心他们的用户自动下载音频文件的可怕成本(与他们试图削弱网络应用程序无关,因为他们没有得到他们的30%来自他们).

但是,我的问题是:有没有人找到一个狡猾的解决方法呢?我只想在游戏发布时播放启动声音,目前必须等待用户点击某处才播放音频.你们其中一个聪明的人现在必须要这个吗?

Sim*_*zen 14

没有机会在移动浏览器中使用自动播放功能.Android和iOS不允许它和我个人认为这是一个可行的禁闭!想象一下,你会在每个第二个网站开始播放和丑陋的声音!

但是你可以做一点点破解,这样用户就不会说他当前为你的应用程序启动了音频:

  1. 您需要用户交互才能启动音频.因此,您的应用或游戏可能有一个启动屏幕或欢迎按钮,需要点击进入主菜单或开始游戏.绑定到用户事件(接受的事件是:"click","touchend","doubleclick"和"keydown")并为您调用load()方法<audio>.

  2. 绑定到"canplaythrough"事件<audio>.当您的源准备好播放时会触发此事件.现在,您可以调用play(),pause()或等待其他交互.所以音频准备就绪,但现在您可以完全控制何时开始或停止声音.

  3. 我还建议您在移动客户端上使用音频精灵.iOS(和Android?)通过Singleton在内部实现了音频支持.这意味着您不能像在桌面浏览器中那样拥有10个音频元素并且可以同时播放不同的声音.你只能播放一个文件!因此,更改不同声音的来源需要花费很多时间.使用音频精灵,您可以在用户首次与您的网站或游戏进行互动时启动您的精灵.暂停你的精灵,当你需要播放声音时,你必须将当前时间设置为精灵的开头,并在文件的currentTime到达精灵结束时暂停精灵.有一个timeupdate事件,你可以检查你的精灵的当前时间.

如果你更感兴趣,我可以为你准备我的javascript音频精灵播放器!