【学习鸿蒙开发,拿认证、获好礼】HarmonyOS新闻阅读行业实践>>AI朗读

87 阅读1分钟

想系统学习HarmonyOS开发?加入班级,学技术、拿认证、获得HarmonyOS礼盒,一站式成长通道已为你打开!

班级链接:developer.huawei.com/consumer/cn…

场景介绍

AI朗读是新闻阅读类应用中的典型场景之一,如用户在浏览新闻、小说等文本内容时,可以通过AI朗读来获取信息。

本示例利用TextReader实现文本的AI朗读、章节切换、进度拖动功能。

效果预览

实现思路

  1. 导入朗读数据ReadInfo至TextReader
  2. 利用状态变化回调函数同步朗读和阅读的章节。
// 初始化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      // 应用资源目录

参考文档

TextReader(朗读控件)

代码下载

AI朗读示例代码

(文章转载自华为开发者联盟官网)