【问题标题】:AVAssetWriter startSessionAtSourceTime: Cannot call method when status is 0AVAssetWriter startSessionAtSourceTime:状态为 0 时无法调用方法
【发布时间】:2014-10-13 09:32:58
【问题描述】:

我很高兴地发现我的应用程序在从 Apple AppStore 下载的版本上崩溃了,而以前从未发生过。查看日志我得到了异常

AVAssetWriter startSessionAtSourceTime: Cannot call method when status is 0

显然在调试模式下不会出现此错误。但在发布模式之前,它从未在随另一个应用程序附带并在 appStore 上可用的代码中出现过。

难道是iOS 8中添加的directoryForTemporaryFiles导致了这个状态0?

【问题讨论】:

  • 也许您应该先调用 startWriting,如果该方法返回 true/YES,然后调用 startSessionAtSourceTime?您还可以查看 RosyWriter Apple 示例developer.apple.com/library/ios/samplecode/RosyWriter/…
  • 确实我并没有调用 start writing,因为调用被包装在一个 NSPArameterAssert 中,而该 NSPArameterAssert 不是在发布模式下编译的
  • @NicolasManzini 有什么解决办法吗?
  • 在调用 startSessionAtSourceTime 之前调用 startWriting

标签: ios iphone avfoundation


【解决方案1】:

startSessionAtSourceTime() 之前调用startWriting() 方法应该可以解决您的问题。

【讨论】:

    【解决方案2】:
    [AVAssetWriter assetWriterWithURL:[NSURL fileURLWithPath:writePath] fileType:AVFileTypeQuickTimeMovie error:nil];
    

    也许问题出在文件类型上。确保选择正确的文件类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      相关资源
      最近更新 更多