【发布时间】:2012-09-13 01:51:48
【问题描述】:
看到 iOS 6 支持 Web Audio API,我真的很兴奋,因为我们制作 HTML5 游戏。但是,我无法让 iOS 6 使用 Web Audio API 播放任何声音,其中的示例在桌面 Chrome 中运行良好。
这是一个带有触摸控制和通过 Web Audio API 播放音频的 HTML5 游戏(如果存在 - 如果不存在,它将回退到 HTML5 音频):
http://www.scirra.com/labs/sbios6b/
编辑:@Srikumar 提出了一些解决方法。我在下面的版本中应用了它们。还是不行!
http://www.scirra.com/labs/sbios6f/
在桌面 Chrome 上一切正常,但 iOS 6 完全没有声音。我在调试它时遇到了麻烦,因为我只进行 Windows 开发,并且 iOS 6 用远程 Web 检查器替换了调试模式,这显然在 Safari for Windows 上不可用。使用一些警报,我确实发现它正确识别了 Web 音频 API,使用它,检测到没有 Vorbis 支持,因此回退到 AAC 音频,解码缓冲区然后播放它,没有抛出任何错误,但我什么也没听到。当然,我试着把音量调到最大:)
应该不存在编解码器问题,因为 iOS 6 可以正常播放 AAC - 您可以浏览到 one of the .m4a's the game plays,它可以正常播放直接从 Safari 访问的内容。
查看 iOS 6 上的 Web Audio API 示例:http://chromium.googlecode.com/svn/trunk/samples/audio/samples.html - 其中一些有效,而另一些则无效。例如,Chrome Audio Visualizer 有效,但 Javascript Drone 无效。
iOS 6 上的 Web Audio 和桌面 Chrome 之间肯定存在一些细微的不兼容。我错过了什么?
【问题讨论】:
-
可能与文件格式有关。我在 Safari 中播放一些 mp3 时遇到了问题。
-
可能,但正如帖子所说,我可以直接从 Safari 播放其中一个 .m4a 声音。
-
您具体遇到了哪些问题?
-
在我看来,audioContext 的 currentTime 没有按应有的方式更新。只需要弄清楚为什么它在某些应用程序中而不是其他应用程序中...
-
@OskarEriksson - 游戏示例没有在 AudioContext 上使用 currentTime,所以我不知道为什么会破坏它。我还以为是别的东西。
标签: javascript html mobile-safari ios6 web-audio-api