2

学校で作業しているiPhoneアプリケーションの2つのオーディオファイルの平均音量(dB)を比較したいと思います。私はXcode、Objective-Cで働いています。

いくつかの調査の結果、AVFoundationフレームワークで「averagePowerForChannel:」を見つけましたが、それがどのように機能するのか理解できません。コードの一部を次に示します。

NSString *stringPath = [NSBundle mainBundle]pathForResource:wavname ofType:@"wav"];
NSURL *url = [NSURL fileURLWithPath:stringPath];
avPlayer = [[AVaudioPlayer alloc]initWithContentsOfUrl:url error:nil];
[avPlayer play];

上記のコードは、「wavname」という名前の.wavファイルを再生します。その平均ボリュームを決定するにはどうすればよいですか?

[avPlayer averagePowerForChannel:0];

上記のコードを追加するだけで、-160.000が返されます。これは、オーディオファイルの先頭の音量レベルだと思います。

これを正しく使用するにはどうすればよいですか?なぜなら、現時点では、ある時点で音量をチェックしているように見えるため、なぜ「averagePower」と呼ばれるのかわかりません。

4

1 に答える 1

0

averagePowerForChannel:再生チャンネルまたは録音チャンネルの平均パワーを返すだけです。ファイル全体を分析するのにはあまり役に立ちません。このメソッドは、現在のメーター値に役立ちます (一例として)。

ファイルを分析するには、(ExtAudioFile API などを使用して) すべてのサンプル データを読み取り、2 次平均(RMS の場合) を計算します。

于 2012-11-16T10:54:47.713 に答える