5
Macで現在のオーディオ出力を利用し、現在のサウンドレベルを表す値を返す方法を探しています。現在のオーディオ出力デバイスの現在のサウンドレベルを取得するにはどうすればよいですか?
音量とは、出力によって生成されるノイズの量を意味します。私はではない出力デバイスの現在の音量レベルを取得する方法を聞いています。
Macで現在のオーディオ出力を利用し、現在のサウンドレベルを表す値を返す方法を探しています。現在のオーディオ出力デバイスの現在のサウンドレベルを取得するにはどうすればよいですか?
音量とは、出力によって生成されるノイズの量を意味します。私はではない出力デバイスの現在の音量レベルを取得する方法を聞いています。
次のコードはApple's Sample AVRecorder
から取得されています...このコードは、このクラスのmovieFileOutputの接続メソッドから一連の接続を取得し、各接続のAVCaptureAudioChannelを取得し、それに基づいてデシベル電力を計算します。あなたは出力 "ノイズレベル"を探している場合は、同様の情報をキャプチャすることができると私は推測する。これより低いレベルのものを探しているなら、HAL(Hardware Abstraction Layer)フレームワークを試してみてください。
- (void)updateAudioLevels:(NSTimer *)timer
{
NSInteger channelCount = 0;
float decibels = 0.f;
// Sum all of the average power levels and divide by the number of channels
for (AVCaptureConnection *connection in [[self movieFileOutput] connections]) {
for (AVCaptureAudioChannel *audioChannel in [connection audioChannels]) {
decibels += [audioChannel averagePowerLevel];
channelCount += 1;
}
}
decibels /= channelCount;
[[self audioLevelMeter] setFloatValue:(pow(10.f, 0.05f * decibels) * 20.0f)];
}
変換はpow(10.f、0.05f * decibels)でなければなりませんか?あなたはその余分な時間20を必要としません。ここをクリックしてください:http://stackoverflow.com/questions/2465328/iphone-sdk-avaudiorecorder-metering-how-to-change-peakpowerforchannel-from-dまたはより良いhttp://travisjeffery.com/b/2013/02/convert-avfoundations-power-levels-to-logarithmic-and-linear-scale/ – ucangetit
@ucangetit、私はコードスニペットに関する細部について知的に話すことができません。 Appleがサンプルコードへのリンクを修正した場合にのみ、私はコードをコピーしました。 –