Commit e79583ae75ddcd5cd581c298beafd6067e0b08ab

Authored by 吴启风
1 parent e39984d8

feat:修复先声录音对音频会话的类别和模式设置影响了音频输出,导致单通道出声(听筒)

lib/pages/reading/bloc/reading_bloc.dart
@@ -130,6 +130,7 @@ class ReadingPageBloc @@ -130,6 +130,7 @@ class ReadingPageBloc
130 "setMethodCallHandler method=${call.method} arguments=${call.arguments}"); 130 "setMethodCallHandler method=${call.method} arguments=${call.arguments}");
131 if (call.method == 'voiceResult') { 131 if (call.method == 'voiceResult') {
132 //评测结果 132 //评测结果
  133 + await audioPlayer.setAudioContext(AudioContext());
133 await audioPlayer.setBalance(0.0); 134 await audioPlayer.setBalance(0.0);
134 add(XSVoiceResultEvent(call.arguments)); 135 add(XSVoiceResultEvent(call.arguments));
135 return; 136 return;
@@ -151,6 +152,7 @@ class ReadingPageBloc @@ -151,6 +152,7 @@ class ReadingPageBloc
151 print(call.method == 'voiceEnd' ? '评测结束' : '评测取消'); 152 print(call.method == 'voiceEnd' ? '评测结束' : '评测取消');
152 } 153 }
153 _isRecording = false; 154 _isRecording = false;
  155 + await audioPlayer.setAudioContext(AudioContext());
154 await audioPlayer.setBalance(0.0); 156 await audioPlayer.setBalance(0.0);
155 add(OnXSVoiceStateChangeEvent()); 157 add(OnXSVoiceStateChangeEvent());
156 return; 158 return;
@@ -159,6 +161,7 @@ class ReadingPageBloc @@ -159,6 +161,7 @@ class ReadingPageBloc
159 if (call.method == 'voiceFail') { 161 if (call.method == 'voiceFail') {
160 //评测失败 162 //评测失败
161 _isRecording = false; 163 _isRecording = false;
  164 + await audioPlayer.setAudioContext(AudioContext());
162 await audioPlayer.setBalance(0.0); 165 await audioPlayer.setBalance(0.0);
163 EasyLoading.showToast('评测失败'); 166 EasyLoading.showToast('评测失败');
164 return; 167 return;
@@ -279,7 +282,9 @@ class ReadingPageBloc @@ -279,7 +282,9 @@ class ReadingPageBloc
279 282
280 Future<void> _playAudio(String? audioUrl) async { 283 Future<void> _playAudio(String? audioUrl) async {
281 if (audioUrl!.isNotEmpty) { 284 if (audioUrl!.isNotEmpty) {
282 - await audioPlayer.play(UrlSource(audioUrl)); 285 + await audioPlayer.play(UrlSource(audioUrl),
  286 + balance: 0.0, ctx: AudioContext()
  287 + );
283 } 288 }
284 } 289 }
285 290
pubspec.yaml
@@ -95,7 +95,7 @@ dependencies: @@ -95,7 +95,7 @@ dependencies:
95 # UI适配 https://pub.dev/packages/responsive_framework 95 # UI适配 https://pub.dev/packages/responsive_framework
96 responsive_framework: ^1.0.0 96 responsive_framework: ^1.0.0
97 # 音频播放 https://pub.dev/packages/audioplayers 97 # 音频播放 https://pub.dev/packages/audioplayers
98 - audioplayers: ^4.1.0 98 + audioplayers: ^6.0.0
99 # 语音录制 https://pub.dev/packages/flutter_sound 99 # 语音录制 https://pub.dev/packages/flutter_sound
100 flutter_sound: ^9.2.13 100 flutter_sound: ^9.2.13
101 # 音频播放 https://pub.dev/packages/audio_session 101 # 音频播放 https://pub.dev/packages/audio_session