为什么我的音频AVCaptureConnection对于最高分辨率格式不起作用?

时间:2015-03-24 19:36:48

标签: ios audio camera avcapturesession high-resolution

我正在开发一个iOS项目,该项目使用AVAssetWriter和AVAssetWriterInput将音频和视频录制到文件中。当视频分辨率限制在720x1280时,一切似乎都能正常工作。我现在正试图利用AVCaptureDeviceFormats获得更新iOS设备上可用的更高分辨率。

使用设备上提供的任何AVCaptureDeviceFormats,视频继续正常工作。 但是,音频不起作用。

我已将此跟踪到我的音频AVCaptureConnection的active property,对于最高分辨率格式为NO,在我记录时看起来像这样:

<AVCaptureConnection: 0x16f62130 [type:soun][enabled:1][active:0]>

此外,当音频连接未激活时,我的didOutputSampleBuffer delegate callback未使用音频数据调用。

我的问题:

  • 为什么音频AVCaptureConnection对于较低分辨率格式有效,但对于最高分辨率格式无效?
  • 当视频分辨率设置为最高时,是否可以录制音频?如果是这样,怎么样?

示例:

iPhone6背面摄像头的最高分辨率AVCaptureFormats:

  • 720x1280,30 FPS(音频连接有效)
  • 720x1280,240 FPS(音频连接有效)
  • 1080x1920,30 FPS(音频连接有效)
  • 1080x1920,60 FPS(音频连接有效)
  • 1936x2592,30 FPS (音频连接未激活)
  • 2448x3264,30 FPS (音频连接未激活)

iPhone6前置摄像头的最高分辨率AVCaptureFormats:

  • 720x1280,60 FPS(音频连接有效)
  • 960x1280,60 FPS (音频连接未激活)

以下是我用来设置活动格式的代码:

if ([self.camera lockForConfiguration:nil])
{
    self.camera.activeFormat = format;
    [self.camera unlockForConfiguration];
}

0 个答案:

没有答案