Lors de la réception d'un appel entrant, la vidéo enregistrée est corrompue et les méthodes AVFoundation donnent des erreurs

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

Question

J'ai une application d'enregistrement vidéo. Tout fonctionne bien. Sauf lorsqu'un appel téléphonique est reçu lors de l'enregistrement.

Lorsqu'un appel téléphonique est reçu, j'essaie de mettre fin à l'enregistrement, cependant, tous mes appels pour écrire à un Avassetwriter sont refusés. audiowriterinput appendSampleBuffer Renvoie non, appendPixelBuffer erreurs. J'essaye d'appeler Avassetwriter finishWriting Mais ça revient AVAssetWriterStatusFailed.

Rien ne fonctionne, ma vidéo est corrompue car il semble que mes méthodes habituelles pour terminer une session d'enregistrement ne soient pas autorisées une fois qu'un appel est reçu.

Que puis-je écouter pour terminer correctement une session d'enregistrement lorsqu'un appel téléphonique est reçu? La seule chose que je peux actuellement faire est d'écouter applicationWillResignActive Et arrêtez tout, mais cela empêche l'enregistrement pendant qu'un utilisateur reçoit un SMS, etc. ce qui ferait fonctionner mon application différemment de l'application de caméra native.

Était-ce utile?

La solution

Jetez un œil au Téléphonie centrale cadre, et spécifiquement le CTCallCenter classer. Vous pouvez enregistrer un callEventHandler qui est un bloc qui accepte un CTCall objet. Cet objet décrit l'état d'appel. Essayez de terminer l'enregistrement lorsque l'objet d'appel indique qu'il s'agit d'un appel entrant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top