1

我正在尝试在装有 iOS 11.4 的 iPad 上使用 RPScreenRecorder startCaptureWithHandler:completionHandler: api 直接获取音频和视频。它适用于应用程序屏幕、应用程序音频和相机,但是当我使用麦克风启用 = YES 打开麦克风时,我从未在回调中获得任何麦克风的音频样本。

我在 info.plist 中添加了麦克风隐私使用密钥,但这没有帮助。

我不确定接下来我能做些什么来尝试解决这个问题。

谢谢。

4

1 回答 1

2

此代码获取包含实际麦克风音频的音频缓冲区(即使没有麦克风使用字符串或音频会话配置):

RPScreenRecorder *recorder = [RPScreenRecorder sharedRecorder];

recorder.microphoneEnabled = YES;

[recorder startCaptureWithHandler:^(CMSampleBufferRef sampleBuffer, RPSampleBufferType bufferType, NSError* error) {
    NSLog(@"Capture %@, %li, %@", sampleBuffer, (long)bufferType, error);
    if (RPSampleBufferTypeAudioMic == bufferType) {
        // Do something with mic audio
    }
} completionHandler:^(NSError* error) {
    NSLog(@"startCapture: %@", error);
}];

有一个权限对话框询问您是允许屏幕和麦克风、仅允许屏幕还是不允许。你有可能只点击屏幕吗?注意我不知道如何重置此对话框。

另一种可能性是您在开始捕获microphoneEnabled 后进行设置?那可能行不通。不,这对我也有用。

以前的猜测

您可能需要激活录音AVAudioSession

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryRecord)  // or AVAudioSessionCategoryPlayAndRecord!
try! AVAudioSession.sharedInstance().setActive(true)
于 2018-06-19T20:21:44.383 回答