问题描述
[AVAssetWriterInput markAsFinished] Cannot call method when status is 0.
问题出现的环境背景及自己尝试过哪些方法
报错时po status = 1;
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
dispatch_async(self.inputQueue, ^{
if (writer.status == AVAssetWriterStatusUnknown ||
writer.status == AVAssetWriterStatusCompleted || writer.status == AVAssetWriterStatusFailed || writer.status == AVAssetWriterStatusCancelled) {
DLog(@"asset writer was in an unexpected state (%@)", @(self.status));
return;
} else {
[self.audioInput markAsFinished];
[self.videoInput markAsFinished];
[self.writer endSessionAtSourceTime:self.endTime];
[self.writer finishWritingWithCompletionHandler:^{
self.videoInput = nil;
self.audioInput = nil;
self.writer = nil;
}];
你期待的结果是什么?实际看到的错误信息又是什么?
[self.videoInput markAsFinished]; 崩溃.
崩溃信息:
[AVAssetWriterInput markAsFinished] Cannot call method when status is 0.
此时打印(AVAssetWriter*)writer.status = 1;