6

AVAssetWriter と AVAssetWriterInput を使用してオーディオとビデオをファイルに記録する iOS プロジェクトに取り組んでいます。ビデオの解像度が 720x1280 に制限されている場合、すべてが正常に機能しているように見えました。私は現在、AVCaptureDeviceFormats を利用して、新しい iOS デバイスでより高い解像度を利用しようとしています。

ビデオは、デバイスで利用可能な AVCaptureDeviceFormats のいずれかを使用して引き続き正常に動作します。 ただし、オーディオは機能しません。

これをオーディオ AVCaptureConnectionのactiveプロパティまで追跡しました。これはNO最高解像度のフォーマット用で、ログに記録すると次のようになります。

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

また、オーディオ接続がアクティブでない場合、didOutputSampleBufferデリゲート コールバックがオーディオ データで呼び出されません。

私の質問:

  • オーディオの 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];
}
4

0 に答える 0