阅读(1153) (10)

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

2020-09-16 17:29:02 更新

可见即可说是要求 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);