Al recibir una llamada entrante, el vídeo grabado está dañado y los métodos de AVFoundation dan errores

StackOverflow https://stackoverflow.com/questions/5997563

Pregunta

Tengo una aplicación de grabación de video.Todo funciona bien.Excepto cuando se recibe una llamada telefónica durante la grabación.

Cuando recibo una llamada telefónica, intento finalizar la grabación; sin embargo, cualquiera de mis llamadas para escribir en un AVAssetWriter es rechazada.audioEscritorEntrada appendSampleBuffer devuelve no, appendPixelBuffer errores fuera.Intento llamar a avAssetWriter finishWriting pero eso regresa AVAssetWriterStatusFailed.

Nada funciona, mi video está dañado porque parece que mis métodos habituales para finalizar una sesión de grabación no se permiten una vez que se recibe una llamada.

¿Qué puedo escuchar para finalizar correctamente una sesión de grabación cuando recibo una llamada telefónica?Lo único que puedo hacer actualmente es escuchar applicationWillResignActive y detener todo, pero eso impide grabar mientras un usuario recibe un mensaje de texto, etc.lo que haría que mi aplicación funcionara de manera diferente a la aplicación nativa de Cámara.

¿Fue útil?

Solución

Échale un vistazo al Telefonía central marco, y en concreto el CTCallCenter clase.Puedes registrar un callEventHandler que es un bloque que acepta un CTCall objeto.Este objeto describe el estado de la llamada.Intente finalizar la grabación cuando el objeto de llamada indique que es una llamada entrante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top