Я разработал пользовательские функции камеры, используя образец кода Apple AVCAM , и в моем приложении включены фоновые режимы , что вызывает проблему с красной полосой.
Я создаю AVCaptureSession, а затем добавляю входы (.Video, .Audio) и выходы в сеансе.
Ниже приведен код для добавления аудиовхода в сеанс
var audioDeviceInput:AVCaptureDeviceInput!
guard let audioDevice = AVCaptureDevice.default(for: AVMediaType.audio) else { return }
do {
audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice)
} catch let error {
audioDeviceInput = nil
NSLog("Could not create audio device input: \(error)")
}
self.session.addInput(audioDeviceInput)
Теперь, когда пользователь нажимает кнопку «Домой», красная полоса мигает на экране iPhone в течение миллисекунд, а затем исчезает (указывая на использование микрофона), и я хочу избежать этой красной полоски.
После некоторых исследований и разработок я узнал, что это происходит из-за добавления аудиовхода в сеанс (код добавления аудиовхода указан выше)
Что я уже сделал?
Чтобы решить эту проблему, я только добавляю аудиовход, когда пользователь начинает запись видео, и удаляю аудиовход, когда пользователь останавливает видео. Это фактически решило проблему с красной полосой, но это вызывает рывок в предварительном просмотре, что действительно раздражает. Теперь я хочу решить эту проблему, но не знаю, как это сделать.
Любая помощь будет оценена.