AVCaptureDevice在模拟器上始终为null

时间:2017-03-29 20:10:35

标签: ios record avcapturesession avcapturedevice

我正在尝试捕捉实时麦克风音频数据。

我从AVCaptureSession的苹果示例中获取了以下内容。

AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];

AVCaptureDevice *audioCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];

NSError *error = nil;
AVCaptureDeviceInput *audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioCaptureDevice error:&error];

if (audioInput) {
    [captureSession addInput:audioInput];
}
else {
    // Handle the failure.
    NSLog(@"ERROR");
}

audioCaptureDeviceaudioInput均为空。

3 个答案:

答案 0 :(得分:3)

是的,它应该是。因为模拟器没有任何麦克风。您应该始终在真实设备上测试任何音频,视频和渲染相关任务。

查看Limitations of Testing in iOS Simulator

  

硬件限制虽然iOS设备的大多数功能   可以在iOS模拟器中模拟,有一些硬件功能   必须直接在设备上测试。硬件功能   无法模拟的是:

     

加速度计

     

陀螺仪

     

相机

     

接近

     

传感器麦克风输入

答案 1 :(得分:2)

模拟器无法将Mac麦克风作为源。您需要使用真实设备来测试它。

答案 2 :(得分:1)

模拟器没有麦克风和摄像头。因此,请点赞并继续

if let captureDevice = AVCaptureDevice.default(for: AVMediaType.audio) {
  // allocate AVCaptureDevice
}