codecamp

鸿蒙OS 可见即可说开发指导

可见即可说是要求 Component 中通过与热词关联,从而达到指定的效果。例如:在浏览图片时,说出图片的名字或角标序号,从而实现打开图片的效果。

说明

该功能目前仅在智慧屏产品上支持。

热词注册

开发者首先需要进行 Component 的热词注册,即告诉设备,哪些热词是这个 Component 所需要响应的。

  1. 构建 Component.VoiceEvent 对象,需要设置热词,中英文都可以。

   Component.VoiceEvent eventKeys = new Component.VoiceEvent("ok");

  1. 如果一个 Component 的同一 VoiceEvent 存在多个热词匹配,可以通过 addSynonyms 方法增加 eventKeys 的热词。

   eventKeys.addSynonyms("确定");

  1. 当 Component.VoiceEvent 对象操作完成后,使用 Component 的 subscribeVoiceEvents 方法来发起注册。

   Component.subscribeVoiceEvents(eventKeys);

  1. 如果一个 Component 有多个事件需要响应,需要创建不同的事件来进行注册。

事件响应

开发者完成热词注册后,需要关注的是对应于不同热词所需要处理的事件。事件响应回调的SpeechEvent对象仅包含一个热词。

  1. 首先需要实现 SpeechEventListener 接口。

   private Component.SpeechEventListener speechEventListener = new Component.SpeechEventListener(
       @Override
       public boolean onSpeechEvent(Component v, SpeechEvent event) {
           if (event.getActionProperty().equals("ok")) {
               ... // 检测注册的热词,进行相应的处理
           }
   });

  1. 通过 setSpeechEventListener 方法实现回调注册。

   Component.setSpeechEventListener(speechEventListener);
鸿蒙OS 动画开发指导
鸿蒙OS JS UI概述
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }