當我使用AVAssetWriter AVCaptureSession錄製video.it工作well.I使用UIApplicationDidEnterBackgroundNotification時和CTCallCenter.callEventHandler當應用進入後臺或打電話來in.UIApplicationDidEnterBackgroundNotification工作well.But在CTCallCenter.callEventHandler停止記錄, [AVAssetWriter finishWriting]返回NO。這裏是AVAssetWriter.error:AVAssetWriter finishWriting失敗CTCallStateIncoming
錯誤域= AVFoundationErrorDomain代碼= -11800 「這項操作無法完成」 的UserInfo = 0x6c0bc20 {NSLocalizedFailureReason =發生未知錯誤(-12785),NSUnderlyingError = 0x6c0fc80「該操作不能完成(OSStatus錯誤-12785)」,NSLocalizedDescription =這項操作無法完成}
看來AVAssetWriter立即失敗當一個呼叫coming.The記錄的文件沒有完成,不能played.Can有人告訴我如何用它做?
CTCallCenter代碼:在其他情況下
m_callCenter = [[CTCallCenter alloc] init];
m_callCenter.callEventHandler= ^(CTCall* call)
{
if (call.callState == CTCallStateDialing || call.callState == CTCallStateIncoming){
[self stopRecording];
//[self performSelectorOnMainThread:@selector(stopRecording) withObject:nil waitUntilDone:NO];
}
};
stopRecording做工精細。
我在我的代碼中加入這一行:\t \t _videoWriter.movieFragmentInterval = CMTimeMakeWithSeconds(1.0,1000000000); 和它的作品fine.Although finishWriting返回NO,但電影文件可以played.Thank你。 – user1362527 2012-05-02 01:57:32
這是一個非常小的片段間隔,我個人會嘗試一些更大的,比如1s或更多。附:接受回答您的問題的答案是一種很好的做法。 – 2012-05-02 08:43:19