2

Remote.IO を使用して PCM からオーディオ バッファを取得していますが、生データが大きすぎてセルラー ネットワーク (3G ネットワーク) でリモート側に送信できません。いくつかの記事を参照しましたが、ほとんどの記事は、ファイルを別の形式のファイルに変換することを提案してます。

オーディオ バッファをリアルタイムで AAC エンコーディング データに変換する方法はありますか?

4

1 に答える 1

1

実際、オーディオバッファを直接AAC形式で保存できます。

ASBDを設定するときは、次のように設定してください。

AudioStreamBasicDescription audioFormat;
audioFormat.mFormatID = kAudioFormatMPEG4AAC;

kAudioFileM4AType次のようにExtAudioFileCreateWithURLを呼び出すときに指定します。

err = ExtAudioFileCreateWithURL((CFURLRef)audioFileURL,
                             kAudioFileM4AType,
                             &audioFormat, 
                             NULL,
                             kAudioFileFlags_EraseFile,
                             &outFile);

また、このようにコーデックを設定する必要があります。

UInt32 codecManf = kAppleSoftwareAudioCodecManufacturer;
ExtAudioFileSetProperty(outFile, kExtAudioFileProperty_CodecManufacturer, sizeof(UInt32), &codecManf);

これは、AACエンコーディングを機能させるのに役立ちます。

于 2013-01-03T06:58:24.183 に答える