阅读(1134)
赞(0)
鸿蒙OS 可见即可说开发指导
2020-09-16 17:29:02 更新
可见即可说是要求 Component 中通过与热词关联,从而达到指定的效果。例如:在浏览图片时,说出图片的名字或角标序号,从而实现打开图片的效果。
说明
该功能目前仅在智慧屏产品上支持。
热词注册
开发者首先需要进行 Component 的热词注册,即告诉设备,哪些热词是这个 Component 所需要响应的。
- 构建 Component.VoiceEvent 对象,需要设置热词,中英文都可以。
Component.VoiceEvent eventKeys = new Component.VoiceEvent("ok");
- 如果一个 Component 的同一 VoiceEvent 存在多个热词匹配,可以通过 addSynonyms 方法增加 eventKeys 的热词。
eventKeys.addSynonyms("确定");
- 当 Component.VoiceEvent 对象操作完成后,使用 Component 的 subscribeVoiceEvents 方法来发起注册。
Component.subscribeVoiceEvents(eventKeys);
- 如果一个 Component 有多个事件需要响应,需要创建不同的事件来进行注册。
事件响应
开发者完成热词注册后,需要关注的是对应于不同热词所需要处理的事件。事件响应回调的SpeechEvent对象仅包含一个热词。
- 首先需要实现 SpeechEventListener 接口。
private Component.SpeechEventListener speechEventListener = new Component.SpeechEventListener(
@Override
public boolean onSpeechEvent(Component v, SpeechEvent event) {
if (event.getActionProperty().equals("ok")) {
... // 检测注册的热词,进行相应的处理
}
});
- 通过 setSpeechEventListener 方法实现回调注册。
Component.setSpeechEventListener(speechEventListener);