1

Finch サウンド エンジンを使用して、AVAudioPlayer から OpenAL に切り替えようとしています。メータリングを行う必要があります。つまり、平均ピーク レベルを取得します。Finch サウンド エンジンはこれを提供しません。私は OpenAL をまったく初めて使用します。これどうやってするの?どんな例でも本当に感謝しています。

4

1 に答える 1

2

AVAudioPlayerのpeakPowerForChannel:メソッドのドロップイン置換を探していると思います。残念ながら、何もありません。あなたはあなた自身を転がさなければならないでしょう。

OpenALの「サウンド」は、「バッファ」(メモリにロードされたサンプルデータ)と「ソース」の組み合わせであり、サンプルデータに適用するプロパティのようなものを表します。

OpenAL再生への簡単なアプローチは、ファイル全体をメモリにロードし、1回の呼び出しですべてを再生することです。ただし、NSInputStreamを使用してPCMサンプルデータのチャンクをファイルからOpenALバッファーに読み込み、alBufferData()を使用して独自の関数を使用してピーク電力を計算し、ソースを使用してチャンクを再生し、EOFまで繰り返すことができます。 。

Finchを使用するつもりですが、AudioQueuesに実際の詳細なルックオーバーを与える必要があります(メータリングが重要な機能である場合)。このタイプのアプリケーション向けに設計されている方がはるかに優れています。特に、kAudioQueueProperty_CurrentLevelMeterDBプロパティは、ピークRMS(mPeakPower)または平均RMSレベル(mAveragePower)のいずれかを提供します。これらは、何度でも読み取ることができます。

幸運と幸せなコーディング!

役立つかもしれないいくつかのリソース:

于 2010-04-02T21:17:18.443 に答える