Cla*_*ude 7 avfoundation ios avcapturesession
我正在尝试使用此问题中的方法捕获音频; 使用AVCaptureSession和AVCaptureAudioDataOutput.这似乎工作得很好1带来的不便:它在模拟器中不起作用.AVAudioRecorder和古老的SpeakHere演示应用程序在我的MacBook Pro上使用内置麦克风在模拟器中运行良好.
问题是在模拟器中[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]给出null,因此后续代码失败并显示消息(当它尝试添加null为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:].'
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以让它在模拟器中工作?
Kru*_*lur 14
该AVCaptureDevice班是不是在模拟器上实现(在本文撰写时,至少,也许它会在未来改变).
试试例如
NSLog(@"%@", [AVCaptureDevice devices]);
Run Code Online (Sandbox Code Playgroud)
这将在模拟器上产生一个空列表(但如果编译并在真实的iDevice上运行,将列出所有捕获设备).
无论如何,这种功能都需要在真实设备上进行测试(由于硬件细节依赖性,例如支持的延迟和样本格式),因此出于测试目的,在模拟器中使用设备支持并不重要.但是将它用于演示目的确实很不错.
要在模拟器上运行演示,也许您可以模拟捕获输入.如果你真的想花一些时间在它上面,也许你可以回到AVAudioRecorder模拟器(我从来没有使用AVAudioRecorder,所以我不知道它是否在模拟器上工作,但从你的问题我读到了它确实).
| 归档时间: |
|
| 查看次数: |
4385 次 |
| 最近记录: |