高仿iOS版手机QQ聊天界面中录音及振幅动画完整实现 [源码下载]

时间:2020-10-20

酷信源码

高仿iOS版手机QQ聊天界面中录音及振幅动画完整实现 [源码下载]


1234567- (float)levels {    [self.audioRecorder updateMeters];    double aveChannel = pow(10, (ALPHA * [self.audioRecorder averagePowerForChannel:0]));    if (aveChannel <= 0.05f) aveChannel = 0.05f;    if (aveChannel >= 1.0f) aveChannel = 1.0f;    return aveChannel;}

01020304050607080910- (void)updateMeter {    // 获取分贝数值    CGFloat level = [[CWRecorder shareInstance] levels];    [self.currentLevels removeLastObject];    [self.currentLevels insertObject:@(level) atIndex:0];    // 这个allLevels是用来干嘛的?(在当前无关)在下面会说明,自有大用    [self.allLevels addObject:@(level)];    // 重绘bezierPath,重新展示    [self updateLevelLayer];}

01020304050607080910111213- (void)updateLevelLayer {    self.levelPath = [UIBezierPath bezierPath];    CGFloat height = CGRectGetHeight(self.levelLayer.frame);    for (int i = 0; i < self.currentLevels.count; i++) {        CGFloat x = i * (levelWidth + levelMargin) + 5;        CGFloat pathH = [self.currentLevels[i] floatValue] * height;        CGFloat startY = height / 2.0 - pathH / 2.0;        CGFloat endY = height / 2.0 + pathH / 2.0;        [_levelPath moveToPoint:CGPointMake(x, startY)];        [_levelPath addLineToPoint:CGPointMake(x, endY)];    }    self.levelLayer.path = _levelPath.CGPath;}