[AVAssetWriterInput markAsFinished] Cannot call when status 0

问题描述

[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;
阅读 6.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题