AVAudioPlayer - 测量 - 想要构建波形(图形) [英] AVAudioPlayer - Metering - Want to build a waveform (graph)
问题描述
我需要构建一个可视图表来表示录制文件中的语音级别(dB)。我试着这样做:
I need to build a visual graph that represents voice levels (dB) in a recorded file. I tried to do it this way:
NSError *error = nil;
AVAudioPlayer *meterPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:self.recording.fileName] error:&error];
if (error) {
_lcl_logger(lcl_cEditRecording, lcl_vError, @"Cannot initialize AVAudioPlayer with file %@ due to: %@ (%@)", self.recording.fileName, error, error.userInfo);
} else {
[meterPlayer prepareToPlay];
meterPlayer.meteringEnabled = YES;
for (NSTimeInterval i = 0; i <= meterPlayer.duration; ++i) {
meterPlayer.currentTime = i;
[meterPlayer updateMeters];
float averagePower = [meterPlayer averagePowerForChannel:0];
_lcl_logger(lcl_cEditRecording, lcl_vTrace, @"Second: %f, Level: %f dB", i, averagePower);
}
}
[meterPlayer release];
如果它没有成功,它会很酷。我总是得到-160分贝。关于如何实现的任何其他想法?
It would be cool if it worked out however it didn't. I always get -160 dB. Any other ideas on how to implement that?
UPD :这是我最终得到的:
UPD: Here is what I got finally:
替代文字http://img22.imageshack.us/img22/5778 /waveform.png
推荐答案
好的,好像我要再回答一下我自己的问题: http://www.supermegaultragroovy.com/blog/2009/10/06 / drawing-waveform / 没有很多混凝土,但至少你会知道Apple文档要读什么。
Ok guys, seems I'm going to answer my own question again: http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/ No a lot of concretics, but at least you will know what Apple docs to read.
这篇关于AVAudioPlayer - 测量 - 想要构建波形(图形)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!