【问题标题】:AVPlayer causes Simulator to crash but runs fine on deviceAVPlayer 导致模拟器崩溃但在设备上运行良好
【发布时间】:2014-11-06 06:03:32
【问题描述】:

我搜索了整个互联网,但没有发现有关此错误的信息。

我正在使用 AVPlayer 播放来自远程或本地 URL 的流音频。 但是,虽然在我的设备上运行良好,但在模拟器上却崩溃了。

我发现播放器的创建进行得很好,但是一旦我调用 [playerInstance play] 应用程序就会崩溃。

错误发生在 CommonURLAssetNotificationQueue 中的某处。 而且异常断点指向0x10e8a2519: pushq %rbp,一点用都没有。

但是,在设备上它可以正常工作。

那么,这是我的错误,我必须修复代码吗?还是只是模拟器表现不正常?

【问题讨论】:

  • 我也一直在模拟器上用 AVPlayer 播放文件时遇到问题。我认为这是模拟器的问题。在实际设备上从来没有遇到过问题。
  • 当您说流式音频时,您是指 HLS,而不是位于远程服务器上的音频文件?
  • 我想我的意思是从远程服务器上的音频文件流式传输。
  • 奇怪的是,在禁用并重新启用自动布局后,问题就没有了。
  • 问题再次浮出水面。很奇怪,它发生在我为情节提要添加约束之后。

标签: ios objective-c cocoa-touch ios-simulator


【解决方案1】:

您很可能启用了异常断点。 AVPlayer 中的 play 方法通常会抛出异常,即使没有任何问题。该异常不会使应用程序崩溃,然后应用程序会继续完全按照您的意愿运行。但是,如果您启用了异常断点,Xcode 会注意到异常并使应用程序崩溃。如果您进入左侧边栏并禁用异常断点,应用程序将运行而不会崩溃。

【讨论】:

  • 你是对的!禁用断点后,我终于可以在模拟器中测试音乐播放了。谢谢!这是开始我的一天的最佳方式。
  • 哇...苹果干得好。 AVPlayer 总是抛出异常?这是一些甜蜜的技术。
  • 老兄,你太棒了;)
  • 这可要了我的命,只是从来没有用谷歌搜索过正确的问题!感谢您的回答。
【解决方案2】:

将异常全部更改为 Objective C。

【讨论】:

    【解决方案3】:

    我的解决方法是在应用的信息页面中添加“使用说明”。因为 AVPlayer Demo App 试图在未经许可的情况下使用本地照片库,这会导致 demo 应用程序崩溃。添加‘Privacy — Photo Library Usage Description’后,我就可以成功运行这个demo app了。

    【讨论】:

      猜你喜欢
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      相关资源
      最近更新 更多