如何在 iOS 中的捕获会话期间将麦克风静音和取消静音

问题描述

我正在使用 AVCaptureSession 在 iOS 应用中重新编码视频。

我想在部分录音过程中将麦克风静音。我正在从我的 AVCaptureConnection 对象创建一个 AVCaptureMovieFileOutput

    AVCaptureMovieFileOutput *movieFileOutput = [AVCaptureMovieFileOutput new];
    if([self.captureSession canAddOutput:movieFileOutput])
    {
        [self.captureSession addOutput:movieFileOutput];
        self.captureSession.sessionPreset = AVCaptureSessionPresetHigh;
        
        AVCaptureConnection *connection = [movieFileOutput connectionWithMediaType:AVMediaTypeVideo];
        if(connection.isVideoStabilizationSupported)
        {
            connection.preferredVideoStabilizationMode = AVCaptureVideoStabilizationModeAuto;
        }
        
        // AVCaptureConnection for audio
        self.audioConnection = [movieFileOutput connectionWithMediaType:AVMediaTypeAudio];

        self.movieFileOutput = movieFileOutput;
    }   

我可以在录音开始时使用 enabled 属性将麦克风静音。

self.audioConnection.enabled = NO;

但是,如果我在录制期间启用此属性,则捕获会话将停止并调用此委托方法

- (void)captureOutput:(AVCaptureFileOutput *)output 
didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL 
      fromConnections:(NSArray<AVCaptureConnection *> *)connections 
                error:(NSError *)error;

我可以开始录制带有音频的第二个视频剪辑,然后组合两个视频剪辑,但这种解决方案并不理想,并且会在两个视频之间造成卡顿。

是否可以在 iOS 中的捕获会话期间将麦克风静音和取消静音?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)