Beim Empfang eines eingehenden Anrufs ist das aufgezeichnete Video beschädigt und die AVFoundation-Methoden geben Fehler aus

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

Frage

Ich habe eine Videoaufzeichnungs-App.Alles funktioniert gut.Außer wenn während der Aufnahme ein Anruf eingeht.

Wenn ein Anruf eingeht, versuche ich, die Aufzeichnung zu beenden. Alle meine Anrufe zum Schreiben an einen AVAssetWriter werden jedoch abgelehnt.audioWriterInput appendSampleBuffer gibt nein zurück, appendPixelBuffer Fehler aus.Ich versuche, avAssetWriter aufzurufen finishWriting aber das kommt zurück AVAssetWriterStatusFailed.

Nichts funktioniert, mein Video ist beschädigt, weil es den Anschein hat, dass meine üblichen Methoden zum Beenden einer Aufnahmesitzung nicht zulässig sind, sobald ein Anruf eingeht.

Worauf kann ich achten, um eine Aufnahmesitzung ordnungsgemäß zu beenden, wenn ein Anruf eingeht?Das Einzige, was ich derzeit tun kann, ist zuzuhören applicationWillResignActive und alles stoppen, aber das verhindert die Aufzeichnung, während ein Benutzer eine Textnachricht usw. erhält.Dadurch würde meine App anders funktionieren als die native Kamera-App.

War es hilfreich?

Lösung

Werfen Sie einen Blick auf die Kerntelefonie Rahmen und insbesondere die CTCallCenter Klasse.Sie können eine registrieren callEventHandler Das ist ein Block, der a akzeptiert CTCall Objekt.Dieses Objekt beschreibt den Anrufstatus.Versuchen Sie, die Aufzeichnung zu beenden, wenn das Anrufobjekt anzeigt, dass es sich um einen eingehenden Anruf handelt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top