【问题标题】:Web Audio API with IOS and Phonegap causes crash on resume from background带有 IOS 和 Phonegap 的 Web 音频 API 导致从后台恢复时崩溃
【发布时间】:2013-03-03 23:59:32
【问题描述】:

这可能是在黑暗中拍摄的,但它是这样的:

我有一个使用 Phonegap 在 iPhone 上运行良好的 HTML5 游戏。

我使用 Web Audio API(从 ios 6 开始支持)添加了音频。这也很有效,除非我退出应用程序然后重新打开应用程序(从“后台”)。

在恢复时,应用程序现在会暂停然后崩溃。

其他一些信息

  • 在使用 howler.js 音频框架后,我首先注意到了这一点。我删除了这个并尝试了 Web Audio API 最基本的准系统示例,但问题仍然存在。

  • 我正在 iOS 6.1.2 和 iPhone5 上使用 Phonegap 2.5.0 对此进行测试。

  • 连接到xcode时由于某种原因无法通过xcode进行调试,应用仍然会在恢复时暂停但不会崩溃。 (所以只有从主屏幕上的图标运行时才会崩溃)

  • 我想我把它归结为ctx.createBufferSource() 电话。


如果其他人有同样的经历,甚至有解决方案,我很想听听!

谢谢
j.

【问题讨论】:

  • 我不确定这是否只是您的问题中的错字,但应该是 ctx.createBufferSource()
  • @OskarEriksson:是的,这只是一个错字,但无论如何谢谢!

标签: cordova uiwebview web-audio-api


【解决方案1】:

您是否尝试过让您的应用在后台播放音频?这将是一个很好的实验来确定您正在使用的音频 API 是否正在处理您的应用程序进入后台并从中恢复。在较低级别的音频 API 中,您需要正确执行几件事以避免崩溃。

无论如何,回到实验。为了允许您的应用在后台播放音频,请修改您的 .plist 文件,将“应用播放音频”项添加到“必需的背景模式”字典中。然后重建,重新测试。

如果这不能帮助您更好地理解问题,那么您将不得不使用一种流行的方法生成崩溃回溯。

【讨论】:

  • 我考虑过尝试这个(因为我的应用没有背景音乐,只有音效)。但是,当使用诸如此类的后台服务时,苹果会声明“您的应用必须提供指定的服务”。因此,虽然是一个不错的实验(我将很快尝试),但无论结果如何,它都不能作为有效的解决方案。我会告诉你进展如何。
【解决方案2】:

更新到新版本的xcode,问题就解决了。

我相当有信心这不是电话差距问题,而是 xcode/ios 中的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多