ios – 用于模拟器中音频的AVCaptureSession

前端之家收集整理的这篇文章主要介绍了ios – 用于模拟器中音频的AVCaptureSession前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 this question中的方法捕获音频;使用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:].'

有没有一种简单的方法可以让它在模拟器中工作?

解决方法

AVCaptureDevice类没有在模拟器上实现(至少在撰写本文时,可能会在将来更改).

尝试例如

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

这将在模拟器上产生一个空列表(但如果编译并在真实的iDevice上运行,将列出所有捕获设备).

无论如何,这种功能需要在真实设备上进行测试(由于硬件细节依赖性,例如支持的延迟和样本格式),因此出于测试目的,在模拟器中获得设备支持并不重要.但是将它用于演示目的确实很不错.

要在模拟器上运行演示,也许您可​​以模拟捕获输入.如果你真的想花一些时间在它上面,也许你可以在模拟器的AVAudioRecorder上回退(我从来没有使用过AVAudioRecorder,所以我无法分辨它是否在模拟器上工作,但从你的问题我读到它确实).

原文链接:https://www.f2er.com/iOS/332631.html

猜你在找的iOS相关文章