¿Cómo configurar el medidor de nivel en la grabación de sonido en el iPhone?

Para grabar sonido, estoy usando el siguiente código:

- (IBAction) recordClicked:(id)sender { NSLog(@"play Record"); if (audioPlayerRecord) { if (audioPlayerRecord.isPlaying) [audioPlayerRecord stop]; else { [audioPlayerRecord play]; [self updateCurrentTimeForPlayer:audioPlayerRecord]; } return; } //Initialize playback audio session AVAudioSession *audioSession = [AVAudioSession shanetworkingInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *recDir = [paths objectAtIndex:0]; NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/recordTest.caf", recDir]]; NSError *error; audioPlayerRecord = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; [audioPlayerRecord play]; duration.text = [NSString stringWithFormat:@"%d:%02d", (int)audioPlayerRecord.duration / 60, (int)audioPlayerRecord.duration % 60, nil]; progressBar.maximumValue = audioPlayerRecord.duration; [self updateViewForPlayerState:audioPlayerRecord]; NSLog(@"Recoder file >"); } 

Cuando la grabación está en curso, quiero mostrar el siguiente tipo de medidor de nivel

Medidor de nivel

Entonces, ¿hay alguna otra manera simplificada para lograr este problema?

verifique AQRecorder.mm …

find: void AQRecorder::StartRecord(CFStringRef inRecordFile)

aquí debes comentar / eliminar la línea

 url = CFURLCreateWithString(kCFAllocatorDefault, (CFStringRef)recordFile, NULL); 

con

 url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)recordFile, kCFURLPOSIXPathStyle, false);