99#import " UIMessageInputView_Voice.h"
1010#import " AudioRecordView.h"
1111#import " AudioPlayView.h"
12+ #import " AudioVolumeView.h"
1213
1314typedef NS_ENUM (NSInteger , UIMessageInputView_VoiceState) {
1415 UIMessageInputView_VoiceStateReady,
@@ -20,6 +21,8 @@ @interface UIMessageInputView_Voice () <AudioRecordViewDelegate>
2021
2122@property (strong , nonatomic ) UILabel *recordTipsLabel;
2223@property (strong , nonatomic ) AudioRecordView *recordView;
24+ @property (strong , nonatomic ) AudioVolumeView *volumeLeftView;
25+ @property (strong , nonatomic ) AudioVolumeView *volumeRightView;
2326@property (assign , nonatomic ) UIMessageInputView_VoiceState state;
2427@property (assign , nonatomic ) int duration;
2528@property (strong , nonatomic ) NSTimer *timer;
@@ -38,6 +41,16 @@ - (id)initWithFrame:(CGRect)frame {
3841 _recordTipsLabel.font = [UIFont systemFontOfSize: 18 ];
3942 [self addSubview: _recordTipsLabel];
4043
44+ _volumeLeftView = [[AudioVolumeView alloc ] initWithFrame: CGRectMake (0 , 0 , kAudioVolumeViewWidth , kAudioVolumeViewHeight )];
45+ _volumeLeftView.type = AudioVolumeViewTypeLeft;
46+ _volumeLeftView.hidden = YES ;
47+ [self addSubview: _volumeLeftView];
48+
49+ _volumeRightView = [[AudioVolumeView alloc ] initWithFrame: CGRectMake (0 , 0 , kAudioVolumeViewWidth , kAudioVolumeViewHeight )];
50+ _volumeRightView.type = AudioVolumeViewTypeRight;
51+ _volumeRightView.hidden = YES ;
52+ [self addSubview: _volumeRightView];
53+
4154 _recordView = [[AudioRecordView alloc ] initWithFrame: CGRectMake ((self .frame.size.width - 88 ) / 2 , 62 , 88 , 88 )];
4255 _recordView.delegate = self;
4356 [self addSubview: _recordView];
@@ -70,6 +83,8 @@ - (void)setState:(UIMessageInputView_VoiceState)state {
7083 case UIMessageInputView_VoiceStateReady:
7184 _recordTipsLabel.textColor = [UIColor colorWithRGBHex: 0x999999 ];
7285 _recordTipsLabel.text = @" 按住说话" ;
86+ _volumeLeftView.hidden = YES ;
87+ _volumeRightView.hidden = YES ;
7388 break ;
7489 case UIMessageInputView_VoiceStateRecording:
7590 _recordTipsLabel.textColor = [UIColor colorWithRGBHex: 0x2faeea ];
@@ -78,12 +93,21 @@ - (void)setState:(UIMessageInputView_VoiceState)state {
7893 case UIMessageInputView_VoiceStateCancel:
7994 _recordTipsLabel.textColor = [UIColor colorWithRGBHex: 0x999999 ];
8095 _recordTipsLabel.text = @" 松开取消" ;
96+ _volumeLeftView.hidden = YES ;
97+ _volumeRightView.hidden = YES ;
8198 break ;
8299 default :
83100 break ;
84101 }
85102 [_recordTipsLabel sizeToFit ];
86103 _recordTipsLabel.center = CGPointMake (self.frame .size .width /2 , 20 );
104+
105+ if (state == UIMessageInputView_VoiceStateRecording) {
106+ _volumeLeftView.center = CGPointMake (_recordTipsLabel.frame .origin .x - _volumeLeftView.frame .size .width /2 - 10 , _recordTipsLabel.center .y );
107+ _volumeLeftView.hidden = NO ;
108+ _volumeRightView.center = CGPointMake (_recordTipsLabel.frame .origin .x + _recordTipsLabel.frame .size .width + _recordTipsLabel.frame .size .width /2 + 10 , _recordTipsLabel.center .y );
109+ _volumeRightView.hidden = NO ;
110+ }
87111}
88112
89113#pragma mark - RecordTimer
@@ -117,6 +141,8 @@ - (NSString *)formattedTime:(int)duration {
117141#pragma mark - AudioRecordViewDelegate
118142
119143- (void )recordViewRecordStarted : (AudioRecordView *)recordView {
144+ [_volumeLeftView clearVolume ];
145+ [_volumeRightView clearVolume ];
120146 self.state = UIMessageInputView_VoiceStateRecording;
121147 [self startTimer ];
122148}
@@ -138,7 +164,8 @@ - (void)recordView:(AudioRecordView *)recordView touchStateChanged:(AudioRecordV
138164}
139165
140166- (void )recordView : (AudioRecordView *)recordView volume : (double )volume {
141-
167+ [_volumeLeftView addVolume: volume];
168+ [_volumeRightView addVolume: volume];
142169}
143170
144171@end
0 commit comments