Skip to content

Commit 67e6cc4

Browse files
sumengsumeng
authored andcommitted
fix bug
1 parent bb7a973 commit 67e6cc4

3 files changed

Lines changed: 18 additions & 12 deletions

File tree

Coding_iOS/Util/Audio/AudioManager.m

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -115,23 +115,27 @@ - (void)record {
115115
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
116116
[[AVAudioSession sharedInstance] setActive:YES error: nil];
117117

118+
_isRecording = YES;
119+
__weak typeof(self) weakSelf = self;
118120
[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
119121
if (granted) {
120-
_audioRecorder.delegate = self;
121-
_audioRecorder.meteringEnabled = YES;
122-
[_audioRecorder record];
123-
_validator = nil;
124-
_isRecording = YES;
125-
[self startUpdateMeter];
126-
127-
if (_delegate && [_delegate respondsToSelector:@selector(didAudioRecordStarted:)]) {
128-
[_delegate didAudioRecordStarted:self];
122+
if (weakSelf.isRecording) {
123+
weakSelf.audioRecorder.delegate = weakSelf;
124+
weakSelf.audioRecorder.meteringEnabled = YES;
125+
[weakSelf.audioRecorder record];
126+
weakSelf.validator = nil;
127+
[weakSelf startUpdateMeter];
128+
129+
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didAudioRecordStarted:)]) {
130+
[weakSelf.delegate didAudioRecordStarted:weakSelf];
131+
}
129132
}
130133
}
131134
else {
135+
_isRecording = NO;
132136
NSError *err = [NSError errorWithDomain:@"没有权限" code:200 userInfo:nil];
133-
if (_delegate && [_delegate respondsToSelector:@selector(didAudioRecord:err:)]) {
134-
[_delegate didAudioRecord:self err:err];
137+
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didAudioRecord:err:)]) {
138+
[weakSelf.delegate didAudioRecord:weakSelf err:err];
135139
}
136140
}
137141
}];

Coding_iOS/Views/AudioView/AudioRecordView.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ - (void)didAudioRecordStoped:(AudioManager *)am file:(NSString *)file duration:(
173173
- (void)didAudioRecord:(AudioManager *)am err:(NSError *)err {
174174
_isRecording = NO;
175175
[self stop];
176-
[self showHudTipStr:err.domain];
177176
if (_delegate && [_delegate respondsToSelector:@selector(recordViewRecord:err:)]) {
178177
[_delegate recordViewRecord:self err:err];
179178
}

Coding_iOS/Views/UIMessageInputView/UIMessageInputView_Voice.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ - (void)recordView:(AudioRecordView *)recordView volume:(double)volume {
170170

171171
- (void)recordViewRecord:(AudioRecordView *)recordView err:(NSError *)err {
172172
[self stopTimer];
173+
if (self.state == UIMessageInputView_VoiceStateRecording) {
174+
[self showHudTipStr:err.domain];
175+
}
173176
self.state = UIMessageInputView_VoiceStateReady;
174177
_duration = 0;
175178
}

0 commit comments

Comments
 (0)