想系统学习HarmonyOS开发?加入班级,学技术、拿认证、获得HarmonyOS礼盒,一站式成长通道已为你打开!
班级链接:developer.huawei.com/consumer/cn…
场景介绍
AI朗读是新闻阅读类应用中的典型场景之一,如用户在浏览新闻、小说等文本内容时,可以通过AI朗读来获取信息。
本示例利用TextReader实现文本的AI朗读、章节切换、进度拖动功能。
效果预览
实现思路
- 导入朗读数据ReadInfo至TextReader。
- 利用状态变化回调函数同步朗读和阅读的章节。
// 初始化TextReaderinit(context: Context) { // TextReader朗读页和minibar悬浮窗的参数初始化 const READER_PARAM: TextReader.ReaderParam = { ....... } await TextReader.init(context, READER_PARAM);}// 开始播放TextReader.start(TextReaderUtil.readInfoList, TextReaderUtil.selectedReadID);// 设置状态变化回调函数用于同步播放章节onStateChanged(state: TextReader.ReadState) { if (TextReaderUtil.selectedReadID === state.id) { TextReaderUtil.readState = state.state; }else { TextReaderUtil.selectedReadID = state.id }}
约束与限制
- 本示例支持API Version 16 Release及以上版本。
- 本示例支持HarmonyOS 5.0.4 Release SDK及以上版本。
- 本示例需要使用DevEco Studio 5.0.4 Release及以上版本进行编译运行。
工程目录
├──entry/src/main/ets // 代码区 │ ├──entryability│ │ └──EntryAbility.ets│ ├──pages│ │ └──NovelReadingPage.ets // 小说阅读页│ ├──utils│ │ └──TextReaderUtil.ets // TextReader设置类│ ├──view │ │ ├──BottomView.ets // 章节切换组件 │ │ └──TopView.ets // 文章头组件 │ └──window │ └──PlayWindow.ets // 悬浮窗 └──entry/src/main/resources // 应用资源目录
参考文档
代码下载
(文章转载自华为开发者联盟官网)