- Jacques .
[audioPlayer updateMeters]; .
, NSTimer.
iVar NSTimer *playerTimer; @interface.
<AVAudioPlayerDelegate> , , .
:
audioPlayer.meteringEnabled = YES;
audioPlayer.delegate = self;
if (!playerTimer)
{
playerTimer = [NSTimer scheduledTimerWithTimeInterval:0.001
target:self selector:@selector(monitorAudioPlayer)
userInfo:nil
repeats:YES];
}
[audioPlayer play];
:
-(void) monitorAudioPlayer
{
[audioPlayer updateMeters];
for (int i=0; i<audioPlayer.numberOfChannels; i++)
{
NSLog(@"%d %0.2f %0.2f", i, [audioPlayer peakPowerForChannel:i],[audioPlayer averagePowerForChannel:i]);
}
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
NSLog (@"audioPlayerDidFinishPlaying:");
[playerTimer invalidate];
playerTimer = nil;
}
.