简介

在使用语音识别的时候,想通过对语音的识别转换为文字,然后再对文本进行分析,实现对应语义的识别进而发出相应命令控制外设。但发现每次识别成功后,都会重复发出至少两次以上的命令,通过阅读官方文档,找到问题的原因是系统为了能够更好的对识别结果进行处理,会多次调用onResult()方法。

官方文档

http://mscdoc.xfyun.cn/android/api/

解决办法

--------------------分割线更新2019.4.30----------------------------------
void onResult(RecognizerResult result, boolean islast)方法里有两个参数,后面的islast是用来判断是否为最后一次调用该方法,当是true时为最后一个结果,否则不是;也就是说,可以对其进行判断识别,当为true时,再进行相应功能的实现

@Override        public void onResult(RecognizerResult recognizerResult, boolean b) {            System.out.println(recognizerResult.getResultString());           //printResulit()为 自定义方法,可以对识别的语音进行一系列的处理,比如说将语音转换为文字            printResult(recognizerResult);            //最后确定识别的结果            if(b){                doSomething();            }        }

--------------------------分割线------------------------------------------
不要把相应的发送命令功能写到onResult()方法里,可以设置一个flag,然后对其进行标记,最后再通过对flag的识别再进行相应的命令发送。

总结

写代码时一定要注意代码的简洁性,一个函数只做一件事,并把这件事做好

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. 如何在后台运行Linux命令?
  3. No.11 使用firewall配置的防火墙策略的生效模式
  4. Android屏蔽ListView的Item点击事件
  5. Android中下拉通知栏,Activity会走哪些生命周期?
  6. Android(安卓)Service详解(一) 初识Service
  7. Android(安卓)Proguard介绍
  8. Android(安卓)进阶——AIDL 详解之AIDL 借助Binder 实现IPC背后
  9. android 音量键调节无效问题

随机推荐

  1. Android(安卓)Studio下添加引用jar文件和
  2. OpenGL Mipmapping(Android(安卓)NDK)
  3. 来电归属地数据查询Java实现
  4. Android(安卓)Dex VS Class:实例图解剖析
  5. Android学习系列(34)
  6. 谷歌称Android(安卓)3.0系统可运行在任何
  7. Android(安卓)官方:Google Play 等服务仍
  8. Android(安卓)打包及引用 aar 文件的方法
  9. Android中的Service的通信
  10. Android应用架构