IOS,得到浮球液位麦克风updateMesters当麦克风被录制音频
问题描述:
这里是我记录的代码现在通过示例UIlable浮点数怎样才能在麦克风水平声音输入IOS,得到浮球液位麦克风updateMesters当麦克风被录制音频
我想我会使用这个功能,但如何能我用这个在rec.h & rec.m文件
(无效)updateMeters
AVAudioSession * audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];
NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
recordedTmpName = [[NSString alloc] initWithFormat:@"%.0f.%@", [NSDate timeIntervalSinceReferenceDate] * 1000.0, @"aac"];
temporaryRecFile= [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:recordedTmpName]];
recorder = [[ AVAudioRecorder alloc] initWithURL:temporaryRecFile settings:recordSetting error:nil];
[recorder setDelegate:self];
[recorder prepareToRecord];
[recorder record];
答
在录制过程中,你必须定期调用updateMeters,和0123得到的平均功率- (浮点)averagePowerForChannel:(NSUInteger)广告channelNumber
[recorder setDelegate:self];
[recorder prepareToRecord];
recorder.meteringEnabled = YES;
[recorder record];
NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(handleTimer) userInfo:nil repeats:YES];
- (void) handleTimer
{
[recorder updateMeters];
label.text = [NSString stringWithFormat:@"lf",[recorder averagePowerForChannel:0]];
}
要了解更多信息,请访问AVAudioRecorder Class Reference