为什么我的audioAVCaptureConnection不能用于最高分辨率格式?
我正在使用AVAssetWriter和AVAssetWriterInput来loggingaudio和video文件的iOS项目。 当video分辨率限制在720×1280时,一切似乎都正常。 我现在正试图利用AVCaptureDeviceFormats获得更高分辨率的iOS设备。
使用设备上可用的任何AVCaptureDeviceFormats,video继续正常工作。 但是,audio不起作用。
我已经跟踪到了我的audioAVCaptureConnection的active
属性 ,这是最高分辨率格式的NO
,当我login时看起来像这样:
<AVCaptureConnection: 0x16f62130 [type:soun][enabled:1][active:0]>
另外,当audio连接不活动时,我的didOutputSampleBuffer
委托callback不会与audio数据一起被调用。
我的问题:
- 为什么audioAVCaptureConnection对低分辨率格式有效,但对最高分辨率格式不适用?
- video分辨率设置为最高时是否可以录制audio? 如果是这样,怎么样?
例:
iPhone6背面摄像头的最高分辨率AVCaptureFormat:
- 720×1280,30 FPS(audio连接有效)
- 720×1280,240 FPS(audio连接有效)
- 1080×1920,30 FPS(audio连接活动)
- 1080×1920,60 FPS(audio连接活动)
- 1936×2592,30 FPS (audio连接无效)
- 2448×3264,30 FPS (audio连接无效)
iPhone6前置摄像头的最高分辨率AVCaptureFormat:
- 720×1280,60 FPS(audio连接有效)
- 960×1280,60 FPS (audio连接无效)
以下是我用来设置活动格式的代码:
if ([self.camera lockForConfiguration:nil]) { self.camera.activeFormat = format; [self.camera unlockForConfiguration]; }