#夏日挑战赛#【FFH】华为智慧屏分布式语音音乐软件,可见即可说 原创 精华
在HarmonyOS官方文档中,有这样一项功能是只能在智慧屏上使用的,那就是可见即可说。恰好在很久之前参照官方分布式音乐播放器定制了一款自己的播放器,今天将其改造成智慧屏应用,并添加可见即可说功能。待真机演示,有设备的小伙伴可以测试一下!
0. 效果演示
- 各设备
- 手机平板,智慧屏
- 真机待测…(to do 7月7号)
1. 可见即可说功能
按照官方文档的介绍,可见即可说就是将一些热词与Component关联,达到监听语音热词,来执行一些相应操作。例如,浏览图片的时候,说出图片的名字或者角标序号,从而实现打开图片的效果。
那么相应的,我们就能将分布式音乐播放器改造成语音控制的,比如将"播放",“暂停”,"上一首"等热词绑定到对应组件上,监测到热词的时候执行功能即可。
2. 可见即可说开发
2.1 热词注册
- 创建Component.VoiceEvent对象,设置相应的热词,英文和中文都是可以的。
可见即可说的功能的核心就是,Component.VoiceEvent对象,一个对象对应一个事件。
- 一个Component.VoiceEvent对象,可以绑定多个热词
- 绑定完热词后,哪个组件需要这个语音事件,哪个组件就需要进行注册。
- 如果组件有多个语音事件要响应,我们就的创建多个Component.VoiceEvent对象,并且都进行注册。一个对象对应一个事件。
2.2 事件开发
在前面,我们设置了语音事件,并且将一个播放按钮对其进行了注册。但也仅仅是注册,然后呢?然后就没然后了,因为我们还没有进行事件开发,按钮要在事件发生时做出响应。
2.2.1 实现SpeechEventListener接口
2.2.2 通过setSpeechEventListener方法实现回调注册
至此,我们对可见即可说的功能已经了解了,那么下面是对分布式音乐播放器案例的改造,感兴趣的读者往下看。
3. 案例编写
3.1 工程结构
3.2 UI设计
3.3 架构简析
这里简单剖析一下架构,详情见附件工程文件。
- PlayerManager.java
封装好的播放器类,设置音乐路径,播放暂停,上一首下一首的功能
- StateListener
播放器状态监听接口,监听播放器状态进而进行一些事件通知
- CommonProvider,ViewProvidor
 用来生成dialog,显示可分布式流转的设备列表, 对此不赘述,用JAVA做UI体验不是很好
- MainAbilitySlice
主页面
3.4 绑定可见即可说事件
这里我们有播放,暂停,上一首,下一首,拖动进度条,分布式流转等操作。
我们逐一为其添加语音事件。
这里只展示了核心部分的代码,具体含义看名称即可知,详情参见附件。
4. 关于分布式流转
关于流转的部分,这里简单复习一下。
在本案例里,任何动态变化的数据都是迁移和恢复的内容。
5. 关于旋转动画
- 创建一个属性动画
- 初始化一个属性对象
- 启动
- 暂停,重置
各种操作放在合适的位置执行就可以了。
5. 结语
本次主要在分布式音乐播放器案例中加入了智慧屏特有的可见即可说的功能,和一些简单的优化和动画。在手机,平板上也能有类似的操作,可参考分布式语音照相机,但相比之下还是觉得可见即可说的功能更加清楚和好用。
真
好厉害大佬
hao bamg
我靠 这么牛