在iOS 6 Simulator上AVAssetWriter finishWriting失败

时间:2012-09-20 17:29:17

标签: ios avfoundation avassetwriter

似乎在iOS 6模拟器上打破了finishWriting - 它永远挂起。它现在已被弃用,并被新的finishWritingWithCompletionHandler取代: - 它也永远不会调用处理程序。

在运行iOS 6的真实设备上,这样可以正常工作。同样在之前的iOS模拟器中它运行得很好。看起来像是iOS 6模拟器中的一个错误。

其他人遇到这种情况或者证明我错了吗?

2 个答案:

答案 0 :(得分:11)

我也有这个问题,然后意识到我没有调用endSessionAtSourceTime:在启动之后。这解决了我的问题。

答案 1 :(得分:2)

好的,在模拟器上找到了解决方法。

看起来停止视频处理线程的死锁,所以解决方法是在主线程中调用stop:

//      in iOS6 Simulator this blocks the video processing thread call back in UI thread.
//       BOOL stop = [assetWriter finishWriting];
[self performSelectorOnMainThread:@selector(stopInOtherThread) withObject:nil]; 

-(void)stopInOtherThread{
    //Stop doesn't block in MainThread
    BOOL stop = [assetWriter finishWriting];
    NSLog(@" assetWriter finishWriting :%d",stop);
}

此解决方法似乎不适用于finishWritingWithCompletionHandler

我会试着看看我是否可以在Apple上提出错误。