Pergunta

Estou a tentar capturar áudio, usando o método de esta pergunta;com AVCaptureSession e AVCaptureAudioDataOutput.Isso parece funcionar bem com 1 inconveniente:ele não funciona no simulador.Tanto AVAudioRecorder, e o bom e velho SpeakHere aplicativo de demonstração, funcionam bem no simulador, usando o microfone interno no meu MacBook Pro.

O problema é que [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]null no simulador, para subseqüente código de falha com a mensagem (quando tenta adicionar null como entrada para o AVCaptureSession):

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Can't add <AVCaptureDeviceInput: 0x9138b40 [(null)]> because the device does not support AVCaptureSessionPresetHigh.  Use -[AVCaptureDevice supportsAVCaptureSessionPreset:].'

Existe uma maneira fácil para começar este trabalho no simulador?

Foi útil?

Solução

O AVCaptureDevice classe não está implementado no simulador (como esta escrito pelo menos, talvez isso vai mudar no futuro).

Tente e.g.

NSLog(@"%@", [AVCaptureDevice devices]);

o que irá produzir uma lista vazia no simulador (mas será que lista todos os dispositivos de captura de se compilado e executado em um verdadeiro iDevice).

Este tipo de funcionalidade precisa ser testado em um dispositivo real de qualquer maneira (devido ao hardware detalhe de dependência, como a latência e exemplos de formatos suportados), portanto, para fins de teste não é tão importante ter o suporte de dispositivo no simulador.Mas seria realmente bom tê-lo para fins de demonstração.

Para ter uma demo em execução no simulador, talvez você pode zombar de captura de entrada.Se você realmente quer passar algum tempo com isso, talvez você possa reversão no AVAudioRecorder para o simulador (eu nunca usei AVAudioRecorder, então eu não posso dizer se é ou não trabalho no simulador, mas a partir de sua pergunta, li que ele faz).

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