Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
book-app
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
book-app
Commits
8adc506a
提交
8adc506a
authored
2月 23, 2024
作者:
yueweilu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
文字朗读
上级
853322d2
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
81 行增加
和
2 行删除
+81
-2
controller.dart
lib/pages/read_web/controller.dart
+73
-0
index.dart
lib/pages/read_web/index.dart
+1
-0
view.dart
lib/pages/read_web/view.dart
+7
-2
没有找到文件。
lib/pages/read_web/controller.dart
浏览文件 @
8adc506a
...
...
@@ -60,10 +60,14 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 当前html名称 0-318.html
late
String
currentHtmlName
=
''
;
// 朗读组件
late
FlutterTts
flutterTts
;
///------------------------------------------ 页面 生命周期--------------------------------------------------------
@override
void
onInit
()
{
initTts
();
discussTitleFocusNode
.
addListener
(
_onCommentFocusChanged
);
super
.
onInit
();
}
...
...
@@ -104,6 +108,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
discussTitleFocusNode
.
dispose
();
titleInput
.
dispose
();
contentInput
.
dispose
();
flutterTts
.
stop
();
super
.
onClose
();
}
///------------------------------------------ 页面 生命周期--------------------------------------------------------
...
...
@@ -154,7 +159,75 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
}
// 初始化朗读组件
initTts
()
{
flutterTts
=
FlutterTts
();
_setAwaitOptions
();
if
(
Platform
.
isAndroid
)
{
_getDefaultEngine
();
_getDefaultVoice
();
}
flutterTts
.
setStartHandler
(()
{
Console
.
log
(
'-------------Playing-------------------'
);
});
if
(
Platform
.
isAndroid
)
{
flutterTts
.
setInitHandler
(()
{
Console
.
log
(
'-------------TTS Initialized-------------------'
);
});
}
flutterTts
.
setCompletionHandler
(()
{
Console
.
log
(
'-------------TTS Complete-------------------'
);
});
flutterTts
.
setCancelHandler
(()
{
Console
.
log
(
'-------------TTS Cancel-------------------'
);
});
flutterTts
.
setPauseHandler
(()
{
Console
.
log
(
'-------------TTS Paused-------------------'
);
});
flutterTts
.
setContinueHandler
(()
{
Console
.
log
(
'-------------TTS Continued-------------------'
);
});
flutterTts
.
setErrorHandler
((
msg
)
{
Console
.
log
(
'-------------TTS error-------------------
$msg
'
);
});
}
Future
_setAwaitOptions
()
async
{
await
flutterTts
.
awaitSpeakCompletion
(
true
);
}
Future
_getDefaultEngine
()
async
{
var
engine
=
await
flutterTts
.
getDefaultEngine
;
if
(
engine
!=
null
)
{
Console
.
log
(
'engine--------------------------------
$engine
'
);
}
}
Future
_getDefaultVoice
()
async
{
var
voice
=
await
flutterTts
.
getDefaultVoice
;
if
(
voice
!=
null
)
{
Console
.
log
(
'voice--------------------------------
$voice
'
);
}
}
Future
speak
(
String
text
)
async
{
await
flutterTts
.
setVolume
(
0.5
);
await
flutterTts
.
setSpeechRate
(
0.5
);
await
flutterTts
.
setPitch
(
1.0
);
if
(
text
!=
null
)
{
if
(
text
!.
isNotEmpty
)
{
await
flutterTts
.
speak
(
text
!);
}
}
}
// 初始化录音组件
Future
<
void
>
openTheRecorder
()
async
{
...
...
lib/pages/read_web/index.dart
浏览文件 @
8adc506a
...
...
@@ -18,6 +18,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import
'package:flutter_sound/public/flutter_sound_recorder.dart'
;
import
'package:flutter_sound_platform_interface/flutter_sound_platform_interface.dart'
;
import
'package:flutter_sound_platform_interface/flutter_sound_recorder_platform_interface.dart'
;
import
'package:flutter_tts/flutter_tts.dart'
;
import
'package:get/get.dart'
;
import
'package:go_router/go_router.dart'
;
import
'package:intl/intl.dart'
;
...
...
lib/pages/read_web/view.dart
浏览文件 @
8adc506a
...
...
@@ -53,8 +53,6 @@ class _ReadPageState extends State<ReadPage> {
onTap:
(){
readController
.
setShowChat
(
true
);
readController
.
setChatType
(
0
);
context
.
pushNamed
(
Routes
.
baiDict
,
queryParameters:
{
'keyword'
:
'蹦'
});
},
child:
Image
.
asset
(
'assets/images/chat.png'
),
):
null
,
...
...
@@ -126,6 +124,13 @@ class _ReadPageState extends State<ReadPage> {
// 监听朗读回调
controller
.
addJavaScriptHandler
(
handlerName:
'readCallBack'
,
callback:
(
args
){
Console
.
log
(
'监听朗读回调------------------------------------------------
$args
'
);
readController
.
speak
(
args
.
first
.
toString
());
// readController.speak('中国共产党(英文名:the Communist Party of China,简写CPC),'
// '创建于1921年7月23日,1921年中国共产党成立后,确立了新民主主义革命的正确道路,让灾难深重的中'
// '国人民看到了新的希望、有了新的依靠。我们党探索出农村包围城市、武装夺取政权的正确革命道路,“唤起工'
// '农千百万”“夺过鞭子揍敌人”,经过土地革命战争、抗日战争、解放战争,推翻了压在中国人民头上的帝国主义、'
// '封建主义、官僚资本主义“三座大山”,建立了人民当家作主的中华人民共和国,彻底结束了近代以来中国内忧外患、积贫积弱的悲惨境地,开启了中华民族发展进步的新纪元'
// );
});
// 监听讨论回调
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论