5

オーディオ ファイルの再生に AudioQueue を使用している既存の iPhone アプリケーションを更新したいと考えています。レベル (peakPowerForChannel、averagePowerForChannel) は 0.0f から 1.0f までの線形でした。

今、私は正常に動作するより単純なクラス AVAudioPlayer を使用するのが好きです。唯一の問題は、レベルが現在デシベルであり、-120.0f から 0.0f まで線形ではないことです。

0.0f と 1.0f の間の線形値に戻す式を誰かが持っていますか?

ありがとう

トム

4

3 に答える 3

16

Apple のいくつかの例では、次の式を使用してデシベルを線形範囲 (0.0 から 1.0) に変換しています。

double percentage = pow (10, (0.05 * power));

power、AVAudioPlayer などのさまざまなレベル メーター メソッドまたは関数の 1 つから取得する値です。averagePowerForChannel:

于 2009-10-03T09:32:31.260 に答える
2

Apple は、dB からレベル メーターに表示される線形値に変換するSpeakHereサンプルでルックアップ テーブルを使用します。

私は小さなルーチンで彼らの計算を形作りました。ここを参照してください。

于 2013-04-24T12:58:45.957 に答える