Iphone:Alternando câmera frontal/traseira AVCaptureDeviceInput ao processar quadros individuais via setSampleBufferDelegate

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

Pergunta

Encontrei um problema interessante ao tentar mudar do uso da câmera frontal para a câmera traseira enquanto processava quadros individuais por meio do seletor AVCaptureVideoDataOutput:setSampleBufferDelegate.A troca de câmera funciona e a tela de visualização que estou exibindo parece ótima, só que os quadros resultantes que capturo não estão mais no modo retrato, estão no modo paisagem.Além disso, alternar da câmera frontal para a traseira resultará na captura de quadros de paisagens pela câmera traseira.Suspeito que, como esse é o caso, algo está errado quando troco a entrada - não é a entrada que está incorreta.Verifiquei essa teoria iniciando o AVCaptureSession com a câmera frontal - os quadros passados ​​para o delegado do buffer estão corretamente no modo retrato.Também tentei interromper explicitamente o AVCaptureSession enquanto a entrada do dispositivo estava sendo trocada sem diferença nos resultados.

Eu peguei a demonstração AVCam para me inspirar.A diferença suspeita entre esse código e o meu é que ele grava em um AVCaptureMovieFileOutput - não está processando quadros individuais.

Alguma ideia?Por que a orientação dos quadros enviados ao meu processador mudaria quando eu trocasse a entrada do dispositivo?

Obrigado por qualquer resposta!

Foi útil?

Solução

Ah, ah!Eu descobri.Por algum motivo, depois de mudar a entrada do dispositivo, o AVCaptureConnection da minha saída de vídeo estava tendo sua orientação redefinida para paisagem à direita.Para resolver o problema, depois de trocar a entrada, peço explicitamente ao AVCaptureConnection da saída de vídeo para definir sua orientação como retrato.

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