iOS ReplayKit прекратит запись микрофона, если я играю AVPlayer во время записи - PullRequest
0 голосов
/ 17 января 2019

Я использую метод ReplayKit RPScreenRecorder.shared().startCapture для записи экрана и микрофона, но я столкнулся с проблемой. если я играю AVPlayer во время ScreenRecording, микрофон прекращает запись звука. Ниже приведены два сценария. в первом все работает нормально, но во втором запись голоса не работает.

  1. запустил AVPlayer и затем запустил screenRecording, остановка звука AVPlayer и мой экран и микрофон начали запись

  2. запустил screenRecording и работает нормально. затем я запускаю AVPlayer, и когда AVPlayer воспроизводит звук, запись голоса останавливается

Ответы [ 2 ]

0 голосов
/ 17 января 2019

После того, как я много копал, я нашел решение. По умолчанию AVFoundation Разрешить одновременное использование микрофона или динамика, а ReplayKit несовместим с содержимым AVPlayer. Поэтому, если мы хотим использовать оба из них одновременно, нам нужно установить AVAudioSession в категории AVAudioSessionCategoryAmbient.

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
} catch let error as NSError {
    print(error)
}

do {
    try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
    print(error)
} 
0 голосов
/ 17 января 2019

Я думаю, что это системное ограничение Как в официальных документах Apple написано

ReplayKit несовместим с содержимым AVPlayer.

Подробности вы можете прочитать здесь

...