Durante la ricezione di una chiamata in arrivo, il video registrato è danneggiato e i metodi di avfondazione stanno dando errori

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

Domanda

Ho un'app di registrazione video.Tutto funziona bene.Tranne quando viene ricevuta una telefonata durante la registrazione.

Quando viene ricevuta una telefonata, cerco di terminare la registrazione, tuttavia, qualsiasi delle mie chiamate da scrivere a un AvassetWriter viene negato.AUDIOWRITERInput appendSampleBuffer Restituisce No, esultato appendPixelBuffer.Provo a chiamare AvassetWriter finishWriting ma che restituisce AVAssetWriterStatusFailed.

Nothing funziona, il mio video è danneggiato perché sembra che i miei metodi usuali finiscano di finire una sessione di registrazione non venga consentita una volta ricevuto una chiamata.

Cosa potrei ascoltare per terminare correttamente una sessione di registrazione quando viene ricevuta una telefonata?L'unica cosa che posso attualmente è ascoltare applicationWillResignActive e interrompere tutto, ma ciò impedisce alla registrazione mentre un utente riceve un messaggio di testo, ecc. Quale rendere la mia app funziona in modo diverso dall'app della fotocamera nativa.

È stato utile?

Soluzione

Dai un'occhiata al Core Telephonia Framework e in particolare la classe CTCallCenter.È possibile registrare un callEventHandler che è un blocco che accetta un oggetto CTCall.Questo oggetto descrive lo stato di chiamata.Prova a terminare la registrazione quando l'oggetto chiamata indica che è una chiamata in arrivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top