当前位置: 首页 > news >正文

【HarmonyOS 6】SpeechKit中的朗读控件,初始化前不进行窗口舞台的设置,也不会报错,与文档描述不符。

【HarmonyOS 6】SpeechKit中的朗读控件,初始化前不进行窗口舞台的设置,也不会报错,与文档描述不符。

一、前言

该文为官方文档bug信息同步帖,结尾有bug官方回复。便于大家信息同步。

前段时间应用升级到HarmonyOS 6,系统提供了很多酷炫的API和功能Kit。对于AI赋能朗读控件,我们在集成后发现了一些问题,由此产生了下面的问题背景。

二、问题背景

如下图所示,官方文档中强调,朗读控件需要在init前,在EntryAbility中进行如下操作:

    WindowManager.setWindowStage(windowStage);

在这里插入图片描述
但实际上,不进行该操作,直接调用init初始化朗读控件,不会报错,可将以下DEMO源码,可直接新建工程后,贴到index.ets类中,启自动签名后,启动查看效果。

// 导入语音朗读相关的组件和类型
import { TextReader, TextReaderIcon, ReadStateCode } from '@kit.SpeechKit';@Entry
@Component
struct Index {/*** 待加载的文章列表*/@State readInfoList: TextReader.ReadInfo[] = [];/*** 当前选中的文章*/@State selectedReadInfo: TextReader.ReadInfo = this.readInfoList[0];/*** 朗读状态*/@State readState: ReadStateCode = ReadStateCode.WAITING;/*** 初始化状态标记*/@State isInit: boolean = false;// 组件即将显示时触发async aboutToAppear(){/*** 模拟加载文章数据*/let readInfoList: TextReader.ReadInfo[] = [{id: '001',title: {text:'水调歌头.明月几时有',isClickable:true},author:{text:'宋.苏轼',isClickable:true},date: {text:'2024/01/01',isClickable:false},bodyInfo: '明月几时有?把酒问青天。不知天上宫阙,今夕是何年?'}];// 更新状态变量this.readInfoList = readInfoList;this.selectedReadInfo = this.readInfoList[0];// 初始化朗读组件this.init();}/*** 初始化朗读组件*/async init() {// 朗读参数配置const readerParam: TextReader.ReaderParam = {isVoiceBrandVisible: true, // 显示品牌信息businessBrandInfo: {panelName: '小艺朗读', // 面板名称panelIcon: $r('app.media.startIcon') // 面板图标}}try {// 获取上下文let context: Context | undefined = this.getUIContext().getHostContext()if (context) {// 初始化朗读组件await TextReader.init(context, readerParam);this.isInit = true; // 标记初始化完成this.setActionListener(); // 设置事件监听}} catch (err) {// 初始化失败时打印错误信息console.error(`TextReader failed to init. Code: ${err.code}, message: ${err.message}`);}}// 设置朗读事件监听setActionListener() {// 监听朗读状态变化TextReader.on('stateChange', (state: TextReader.ReadState) => {this.onStateChanged(state);});// 监听加载更多请求TextReader.on('requestMore', () => {TextReader.loadMore([], true);})}// 处理朗读状态变化onStateChanged = (state: TextReader.ReadState) => {// 只处理当前选中文章的状态变化if (this.selectedReadInfo?.id === state.id) {this.readState = state.state;} else {this.readState = ReadStateCode.WAITING;}}// 构建UI界面build() {Column() {// 朗读状态图标TextReaderIcon({ readState: this.readState }).margin({ right: 20 }).width(32).height(32).onClick(async () => {// 点击图标时开始朗读try {await TextReader.start(this.readInfoList, this.selectedReadInfo?.id);} catch (err) {// 朗读失败时打印错误信息console.error(`TextReader failed to start. Code: ${err.code}, message: ${err.message}`);}})}.height('100%')}
}

在这里插入图片描述

三、问题反馈:

目前官方文档已更新,setWindowStage,新增设备行为差异说明,在手机设备上,不需要调用该接口,直接初始化朗读朗读控件就可以了。
在这里插入图片描述

http://www.dtcms.com/a/611423.html

相关文章:

  • 大连旅游网站建设创建全国文明城市的目的
  • 【docker】运行对应服务
  • 做网站哪种编程语言最好公司响应式网站建设报价
  • 临沂网站建设中企动力58网站模板
  • 珠海品牌型网站建设网站设计怎么做链接
  • 哈尔滨无障碍网站建设ui培训费用
  • 如何在Ubuntu虚拟机中设置Samba共享,并在Windows宿主机中挂载为网络驱动器
  • 使用yopmail注册临时邮箱
  • 百度公司可以建设网站网页版哔哩哔哩怎么下载视频
  • 工厂弄个网站做外贸如何建立自己的网站平台的好处
  • 电力系统调度自动化的五遥: 遥信 遥测 遥控 遥调 遥视
  • 怎么做电影网站教程网站页面统计代码
  • 自建网站访问报错坊网站建设
  • 哪些网站可以做画赚钱网页设计学校模板
  • (四)自然语言处理笔记——Fasttext
  • 英集芯-IP5385 IIC通信异常原因深入分析及解决方案 21
  • 营销型企业网站建设哪家好shopex进入网站自动回跳转到别的网站 是否被挂马
  • 手机购买网站源码深圳网站建设培训机构
  • 厦门公司注册网站做导购网站
  • 网站建设是网络工程师吗熊掌号网站改造绑定织梦网站
  • 泉州网站建设公司首选公司软件开发专业属于哪个专业大类
  • 惠州网站搭建找谁免费的舆情网站不需下载
  • 网站建设立项说明书亿图在线制作流程图
  • Jetson Nano 使用移动硬盘拷贝大文件的通用流程(终极版)
  • 魔鬼面具中ultralytics下如何修改rt-detr的损失函数
  • 如何一键建淘宝客网站惠州公司网站建设
  • 网站建设需要的技术路线企业logo设计说明
  • 主流开源的Agentic AI分析与比较
  • 网站前台怎么套用织梦后台wordpress收费破解模板
  • 简单了解Vision Transformer(ViT)和 CLIP(Contrastive Language–Image Pretraining)