【问题标题】:iOS app gets terminated while playing music in backgroundiOS 应用程序在后台播放音乐时终止
【发布时间】:2018-03-03 06:49:51
【问题描述】:

我开发了一个 iOS 音乐播放器,它可以在后台模式下播放自己的音乐文件。该应用基于 React Native 0.48,并使用了一些第三方插件,如 music controlsaudio-toolkit 作为声音库。

由于我在我的设备上安装了 iOS 11,我遇到了以下问题:当我在后台模式下播放音乐时,应用程序会在 10-15 分钟后终止,并显示以下消息:

Message from debugger: Terminated due to signal 9

这在 iOS 10 上没有发生,在这个较旧的 iOS 版本上,应用程序在后台模式下运行良好。我还设置了正确的背景模式:

内存和 CPU 使用看起来正常,与 iOS 10 相比找不到任何特别之处:

iPhone 始终有大约 500 MB 的可用 RAM。 iOS 10 和 iOS 11 之间是否有任何可能导致此问题的更改?

【问题讨论】:

  • 我遇到了类似的问题,在 iOS 11 模拟器上,应用程序进入后台后立即停止播放音频。在 bugreport.apple.com 上提交错误报告 :)
  • 是的,今天才想到。我做得对,我希望这是一个错误,而不是一个“新功能”。
  • @DavidRiha 但有趣的是它不会在 Spotify 应用程序上发生。所以我不知道这是否可能是 React Native 的性能问题。

标签: ios react-native ios11


【解决方案1】:

根据documentation 提供的信息,已经提到此本机模块目前不支持在 iOS 后台播放音频。

【讨论】:

    【解决方案2】:

    问题是由background timer 插件引起的。删除它后,一切都恢复正常了。我猜这个插件也激活了一些后台模式,iOS 因为(长时间运行的)工作而终止了应用程序。

    【讨论】:

      【解决方案3】:

      我从其他论坛得到以下错误修正: https://forums.adobe.com/thread/2387025

      在编译时无需更改代码。

      运行以下命令(在 2.1 和 2.1.4-stable 分支上测试): scons p=iphone -j 4 target=release tools=no arch=arm64 bits=64 IPHONESDK="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/"

      重要的部分是将 iPhoneSDK 指向符号链接的位置。

      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/
      

      现在,当应用程序暂停/后台运行时,它不会崩溃并按预期恢复:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        相关资源
        最近更新 更多