似乎在iOS 6模拟器上打破了finishWriting - 它永远挂起。它现在已被弃用,并被新的finishWritingWithCompletionHandler取代: - 它也永远不会调用处理程序。
在运行iOS 6的真实设备上,这样可以正常工作。同样在之前的iOS模拟器中它运行得很好。看起来像是iOS 6模拟器中的一个错误。
其他人遇到这种情况或者证明我错了吗?
答案 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上提出错误。