1

私は自分の c++ http クライアント (つまり、mp3、aiff など) でさまざまなサウンド ファイルをダウンロードしています。ここで、Core Audio のAudioToolboxを使用してそれらを解析し、OpenAL で再生するためのリニア PCM データを取得します。このドキュメント: https://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/ARoadmaptoCommonTasks/ARoadmaptoCommonTasks.htmlによると、メモリからオーディオ ファイルを作成することもできるはずです。残念ながら、API をブラウジングするときにこれを行う方法が見つかりませんでした。これを行う一般的な方法は何ですか? 最初にファイルをハード ドライブに保存する必要があるとは言わないでください。

ありがとうございました!

4

1 に答える 1

0

私は入力メモリバッファを使用してこれを行い、ファイルを避けました。私の場合、AACオーディオ形式から始め、アップルのapi:AudioConverterFillComplexBufferを使用してハードウェアをLPCMに解凍しました。秘訣は、入力データの各パケットを提供するためのコールバック関数を定義する必要があることです。そのAPI呼び出しは、パケットごとにフォーマット変換を行います。私の場合、圧縮されたAACデータを解析してパケットの開始(0xfff)を識別するコードを記述し、コールバックを使用して各パケットをapi呼び出しにスプーンでフィードする必要がありました。また、オーディオレンダリングにOpenALを使用していますが、入力ファイルの使用を回避するための独自の課題があります。

于 2012-11-19T16:26:45.633 に答える