Ao receber uma chamada, o vídeo gravado está corrompido e os métodos AVFoundation estão apresentando erros

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

Pergunta

Eu tenho um aplicativo de gravação de vídeo.Tudo funciona bem.Exceto quando uma chamada é recebida durante a gravação.

Quando uma chamada é recebida, tento encerrar a gravação, porém, qualquer uma das minhas chamadas para gravar em um AVAssetWriter é negada.audioWriterInput appendSampleBuffer retorna não, appendPixelBuffer erros.Eu tento ligar para avAssetWriter finishWriting mas isso retorna AVAssetWriterStatusFailed.

Nada funciona, meu vídeo está corrompido porque parece que meus métodos usuais para encerrar uma sessão de gravação não estão sendo permitidos após o recebimento de uma chamada.

O que posso ouvir para encerrar adequadamente uma sessão de gravação quando uma chamada for recebida?A única coisa que posso fazer atualmente é ouvir applicationWillResignActive e pare tudo, mas isso impede a gravação enquanto um usuário recebe uma mensagem de texto, etc.o que faria meu aplicativo funcionar de maneira diferente do aplicativo Câmera nativo.

Foi útil?

Solução

Dê uma olhada no Telefonia Central quadro e, especificamente, o CTCallCenter aula.Você pode registrar um callEventHandler que é um bloco que aceita um CTCall objeto.Este objeto descreve o estado da chamada.Tente encerrar a gravação quando o objeto de chamada indicar que é uma chamada recebida.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top