При входящем звонке записанное видео повреждается, а методы AVFoundation выдают ошибки.
-
13-11-2019 - |
Вопрос
У меня есть приложение для записи видео.Все работает нормально.За исключением случаев, когда во время записи поступает телефонный звонок.
При получении телефонного звонка я пытаюсь завершить запись, однако любые мои запросы на запись в AVAssetWriter отклоняются.аудиоWriterInput appendSampleBuffer
возвращает нет, appendPixelBuffer
ошибки вылезли.Я пытаюсь вызвать avAssetWriter finishWriting
но это возвращается AVAssetWriterStatusFailed
.
Ничего не работает, мое видео повреждено, потому что мои обычные методы завершения сеанса записи не разрешены после получения вызова.
Что мне следует слушать, чтобы правильно завершить сеанс записи при поступлении телефонного звонка?Единственное, что я могу сейчас делать, это слушать applicationWillResignActive
и остановить все, но это предотвращает запись, пока пользователь получает текстовое сообщение и т. д.из-за этого мое приложение будет работать иначе, чем родное приложение «Камера».
Решение
Взгляните на Базовая телефония рамки, и в частности CTCallCenter
сорт.Вы можете зарегистрировать callEventHandler
который представляет собой блок, который принимает CTCall
объект.Этот объект описывает состояние вызова.Попробуйте завершить запись, когда объект вызова укажет, что это входящий вызов.