我想UIImageView
根据 peakPowerForChannel 为png 图像的 alpha 设置动画AVAudioPlayer
。我没有任何错误或崩溃,但它不起作用。以下是(我相信的)我的 ViewController 代码的相关部分:
。H
@property (nonatomic, strong) AVAudioPlayer *audioPlayer;
@property(getter = isMeteringEnabled) BOOL meteringEnabled;
@property (weak, nonatomic) IBOutlet UIImageView *mouthMeter;
- (void)updateMouthMeter:(id) sender;
.m
- (void)viewDidLoad{
...
self.meterTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(updateMouthMeter:) userInfo:NULL repeats:YES];
}
-(void)updateMouthMeter : (id)sender {
[self.audioPlayer updateMeters];
float level = [self.audioPlayer peakPowerForChannel:0];
[UIView beginAnimations:nil context:NULL];
self.mouthMeter.alpha = level;
[UIView commitAnimations];
}
我认为我的问题在于AVAudioPlayer
输出 0.0dB 的 MAX 和 -160dB 的 MIN,我需要处理这个输入,以便它输出适合 alpha 通道的浮点数(0.0 到 1.0)。
关于如何做到这一点的任何建议?它可以包含在上面的 updateMouthMeter 方法中吗?