我正在研究一个具有视频录制功能的应用,用户可以在其中调整音量 . 我使用AVFoundation完成了它 . 我已初始化 AVCaptureSession 并在其中添加了 AVCaptureAudioDataOutputAVCaptureVideoDataOutput 作为音频和视频输出 . 我还在这附上一段代码 .

AVCaptureSession *session = _captureSession;
    if (![session.sessionPreset isEqualToString:_captureSessionPreset]) {
    if ([session canSetSessionPreset:_captureSessionPreset]) {
        session.sessionPreset = _captureSessionPreset;
    } else {
        newError = [VideoRecorder createError:@"Cannot set session preset"];
    }
}
_videoOutputAdded = NO;
if (self.videoConfiguration.enabled) {
    if (_videoOutput == nil) {
        _videoOutput = [[AVCaptureVideoDataOutput alloc] init];
        _videoOutput.alwaysDiscardsLateVideoFrames = NO;
        [_videoOutput setSampleBufferDelegate:self queue:_sessionQueue];
    }

    if (![session.outputs containsObject:_videoOutput]) {
        if ([session canAddOutput:_videoOutput]) {
            [session addOutput:_videoOutput];
            _videoOutputAdded = YES;
        } else {
            if (newError == nil) {
                newError = [VideoRecorder createError:@"Cannot add videoOutput inside the session"];
            }
        }
    }
    else {
        _videoOutputAdded = YES;
    }
}

_audioOutputAdded = NO;
if (self.audioConfiguration.enabled) {
    if (_audioOutput == nil) {
        _audioOutput = [[AVCaptureAudioDataOutput alloc] init];
        [_audioOutput setSampleBufferDelegate:self queue:_sessionQueue];
    }

    if (![session.outputs containsObject:_audioOutput]) {
        if ([session canAddOutput:_audioOutput]) {
            [session addOutput:_audioOutput];
            _audioOutputAdded = YES;
        } else {
            if (newError == nil) {
                newError = [VideoRecorder createError:@"Cannot add audioOutput inside the sesssion"];
            }
        }
    } else {
        _audioOutputAdded = YES;
    }
}

如何调整与此 AVCaptureSession 相关的 AVCaptureConnection 的音量,因为它似乎只适用于mac?

如何在录制时调整录制音量?

如果有任何其他方法可以实现这一点,请告诉我 .