我很高兴看到 iOS 6 支持 Web Audio API,因为我们制作 HTML5 游戏。但是,我无法让 iOS 6 使用 Web Audio API 播放任何声音,其中的示例在桌面 Chrome 中运行良好。
这是一个带有触摸控制并通过 Web Audio API 播放音频的 HTML5 游戏(如果存在 - 如果不存在,它将回退到 HTML5 音频):
http://www.scirra.com/labs/sbios6b/ http://www.scirra.com/labs/sbios6b/
编辑:@Srikumar 建议了一些解决方法。我在下面的版本中应用了它们。还是不行!
http://www.scirra.com/labs/sbios6f/ http://www.scirra.com/labs/sbios6f/
在桌面版 Chrome 上一切都运行良好,但 iOS 6 根本不发出任何声音。我在调试它时遇到了麻烦,因为我只进行 Windows 开发,而 iOS 6 用远程 Web 检查器替换了调试模式,这显然在 Windows 版 Safari 上不可用。使用一些警报,我确实发现它正确识别了 Web Audio API,使用它,检测到没有 Vorbis 支持,因此回退到 AAC 音频,解码缓冲区然后播放它,并且没有抛出任何错误,但我什么也没听到。当然,我尝试将音量调到最大:)
不应该有编解码器问题,因为 iOS 6 可以很好地播放 AAC - 您可以浏览游戏播放的 .m4a 之一 http://www.scirra.com/labs/sbios6b/media/epicarpg.m4a直接从 Safari 访问它效果很好。
查看 iOS 6 上的 Web Audio API 示例:http://chromium.googlecode.com/svn/trunk/samples/audio/samples.html http://chromium.googlecode.com/svn/trunk/samples/audio/samples.html- 其中一些有效,而另一些则无效。例如,Chrome 音频可视化工具 http://www.htmlfivewow.com/demos/audio-visualizer/index.html有效,但是JavaScript 无人机 http://matt-diamond.com/drone.html没有。
iOS 6 上的网络音频和桌面 Chrome 之间肯定存在一些微妙的不兼容性。我缺少什么?