提交 4877d007 authored 作者: yueweilu's avatar yueweilu

1、第一次录音失败

2、本书信息 适配
上级 2b4a08c2
...@@ -108,14 +108,19 @@ class BookInfoPage extends StatelessWidget { ...@@ -108,14 +108,19 @@ class BookInfoPage extends StatelessWidget {
{'name':'上架时间','value':Tools.dateFromMS(model.onsaleTime!.toInt(),pattern:'yyyy年MM月dd日' )}, {'name':'上架时间','value':Tools.dateFromMS(model.onsaleTime!.toInt(),pattern:'yyyy年MM月dd日' )},
].map((item){ ].map((item){
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Container( Row(
// color: Colors.cyan, children: [
alignment: Alignment.centerRight, Container(
width: 60.w, // color: Colors.cyan,
child: Text(item['name'].toString(),style: const TextStyle(fontSize: 15,height: 2.1,color: Colours.c3),), alignment: Alignment.centerRight,
width: 80.w,
child: Text(item['name'].toString(),style: const TextStyle(fontSize: 15,height: 2.1,color: Colours.c3),),
),
Gaps.hGaps20,
],
), ),
Gaps.hGaps20,
Expanded( Expanded(
child: Container( child: Container(
// color: Colors.red, // color: Colors.red,
......
...@@ -282,36 +282,35 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -282,36 +282,35 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 初始化录音组件 // 初始化录音组件
Future<void> openTheRecorder() async { Future<void> openTheRecorder() async {
// 获取权限
if(await Access.microphone()){ var status = await Access.microphone();
await _mRecorder.openRecorder(); if (status == false) {
final session = await AudioSession.instance; Toast.show('录音权限没有开启无法使用该功能');
await session.configure(AudioSessionConfiguration( return;
avAudioSessionCategory: AVAudioSessionCategory.playAndRecord, }
avAudioSessionCategoryOptions: await _mRecorder.openRecorder();
AVAudioSessionCategoryOptions.allowBluetooth | final session = await AudioSession.instance;
AVAudioSessionCategoryOptions.defaultToSpeaker, await session.configure(AudioSessionConfiguration(
avAudioSessionMode: AVAudioSessionMode.spokenAudio, avAudioSessionCategory: AVAudioSessionCategory.playAndRecord,
avAudioSessionRouteSharingPolicy: avAudioSessionCategoryOptions:
AVAudioSessionRouteSharingPolicy.defaultPolicy, AVAudioSessionCategoryOptions.allowBluetooth |
avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none, AVAudioSessionCategoryOptions.defaultToSpeaker,
androidAudioAttributes: const AndroidAudioAttributes( avAudioSessionMode: AVAudioSessionMode.spokenAudio,
contentType: AndroidAudioContentType.speech, avAudioSessionRouteSharingPolicy:
flags: AndroidAudioFlags.none, AVAudioSessionRouteSharingPolicy.defaultPolicy,
usage: AndroidAudioUsage.voiceCommunication, avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none,
), androidAudioAttributes: const AndroidAudioAttributes(
androidAudioFocusGainType: AndroidAudioFocusGainType.gain, contentType: AndroidAudioContentType.speech,
androidWillPauseWhenDucked: true, flags: AndroidAudioFlags.none,
)); usage: AndroidAudioUsage.voiceCommunication,
} ),
// 没有权限 androidAudioFocusGainType: AndroidAudioFocusGainType.gain,
else { androidWillPauseWhenDucked: true,
));
}
} }
// 开启录音 // 开启录音
void record() async { void record() async {
openTheRecorder(); await openTheRecorder();
startRecording = true; startRecording = true;
String filePath = await Tools.getDirectory(); String filePath = await Tools.getDirectory();
String fileName = Tools.generateVoiceFileName(); String fileName = Tools.generateVoiceFileName();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论