AVCaptureSession模拟器中的audio
我试图捕捉audio,使用这个问题的方法; 与AVCaptureSession和AVCaptureAudioDataOutput。 这似乎工作正常1不便:它不起作用的模拟器。 AVAudioRecorder和老的SpeakHere演示程序都可以在模拟器中正常工作,使用MacBook Pro上的内置麦克风。
问题是[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]
在模拟器中给出null
,所以随后的代码将失败,并显示消息(当它尝试将null
作为input添加到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:].'
有没有一种简单的方法来获得这个在模拟器中工作?
AVCaptureDevice
类没有在模拟器上实现(至less在这篇文章中,可能会在将来改变)。
尝试例如
NSLog(@"%@", [AVCaptureDevice devices]);
这将在模拟器上产生一个空列表(但是如果编译并在真实的iDevice上运行,将列出所有的捕获设备)。
这种function需要在真实设备上进行testing(由于硬件细节的依赖性,如延迟和支持的采样格式),所以出于testing目的,在模拟器中支持设备并不重要。 但是,为了演示的目的,确实很好。
要在模拟器上运行演示,也许你可以模拟捕获input。 如果你真的想花一些时间,也许你可以在模拟器AVAudioRecorder
备用(我从来没有使用AVAudioRecorder,所以我不能告诉它是否在模拟器上工作,但从你的问题我读它确实)。