Mac OS X でのキャプチャと再生に vpio オーディオ ユニットを使用しています。
vpio ユニットで入出力フォーマットを設定するまでは、すべてうまくいきます。
私が望んでいたフォーマットは次のとおりです。
AudioStreamBasicDescription audio_format ;
audio_format.mSampleRate = 8000.0 ;
audio_format.mBitsPerChannel = 16 ;
audio_format.mChannelsPerFrame = 1 ;
audio_format.mBytesPerFrame = (audio_format.mBitsPerChannel >> 3) * audio_format.mChannelsPerFrame ;
audio_format.mFramesPerPacket = 1 ;
audio_format.mBytesPerPacket = audio_format.mBytesPerFrame * audio_format.mFramesPerPacket ;
audio_format.mFormatID = kAudioFormatLlinearPCM ;
audio_format.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked ;
このフォーマットを vpio (入力バス/出力スコープ) に設定できますが、vpio (出力バス/入力スコープ) には設定できず、エラー コードが表示されます(kAudioUnitErr_FormatNotSupported
)。しかし、AUHAL unit
代わりに使用すると、AUHAL (入力バス/出力スコープ) と AUHAL (出力バス/入力スコープ) の両方でフォーマットを設定できます。
この2つのユニットの違いは何ですか?
いくつかの試行を行った後、次のように、vpio (出力バス/入力スコープ) で使用可能な形式の 1 つを最終的に見つけました。
AudioStreamBasicDescription audio_format ;
audio_format.mSampleRate = 8000.0 ;
audio_format.mBitsPerChannel = 32 ;
audio_format.mChannelsPerFrame = 1 ;
audio_format.mBytesPerFrame = (audio_format.mBitsPerChannel >> 3) * audio_format.mChannelsPerFrame ;
audio_format.mFramesPerPacket = 1 ;
audio_format.mBytesPerPacket = audio_format.mBytesPerFrame * audio_format.mFramesPerPacket ;
audio_format.mFormatID = kAudioFormatLlinearPCM ;
audio_format.mFormatFlags = kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsPacked ;
しかし、私を混乱させたのは、vpio の (入力バス/出力スコープ) と (出力バス/入力スコープ) のフォーマットが一致していなかったことです。そして、どうやって手に入れるのか知りたいthe available formats information of the vpio unit
ですか?Apple サイトで利用可能な の形式に関するドキュメントが見つかりません。
誰かが私の質問に答えることができますか?
ありがとうございます。