Unity端接入讯飞语音识别的离线命令词识别(二) | 您所在的位置:网站首页 › unity人物转向 › Unity端接入讯飞语音识别的离线命令词识别(二) |
上章我们讲了在AndroidStudio里跑讯飞原生的demo。 这章我们来将这个在Unity中跑起来。
/** * Toast显示unity发送过来的内容 * @param content 消息的内容 * @return 调用是否成功 */ public boolean showToast(String content){ Toast.makeText(getActivity(),content,Toast.LENGTH_SHORT).show(); //这里是主动调用Unity中的方法,该方法之后unity部分会讲到 callUnity("Main Camera","FromAndroid", "hello unity i'm android"); return true; } /** * 调用Unity的方法 * @param gameObjectName 调用的GameObject的名称 * @param functionName 方法名 * @param args 参数 * @return 调用是否成功 */ boolean callUnity(String gameObjectName, String functionName, String args){ try { Class> classtype = Class.forName("com.unity3d.player.UnityPlayer"); Method method =classtype.getMethod("UnitySendMessage", String.class,String.class,String.class); method.invoke(classtype,gameObjectName,functionName,args); return true; } catch (ClassNotFoundException e) { } catch (NoSuchMethodException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { } return false; } 应该很简单吧。我就不多讲了。 using UnityEngine;using UnityEngine.UI;public class Main : MonoBehaviour{ /// /// 场景上的文本框用来显示android发送过来的内容 /// public Text text; /// /// android原生代码对象 /// AndroidJavaObject _ajc; void Start() { //通过该API来实例化导入的arr中对应的类 _ajc = new AndroidJavaObject("com.iflytek.mscv5plusdemo.AsrDemo"); } void Update() { } /// /// 场景上按点击时触发该方法 /// public void OnBtnClick() { //通过API来调用原生代码的方法 bool success = _ajc.Call("InitAsr"); if (true == success) { //请求成功 } } public void OnBtnClick2() { //通过API来调用原生代码的方法 bool success = _ajc.Call("Buildsyntax"); if (true == success) { //请求成功 } } public void OnBtnClick3() { //通过API来调用原生代码的方法 bool success = _ajc.Call("StartRecognize"); if (true == success) { //请求成功 } } /// /// 原生层通过该方法传回信息 /// /// public void FromAndroid(string content) { text.text = content; }} 三个方法分别调用了安卓的初始化,构建语法,开始识别三个功能 _ajc = new AndroidJavaObject(“com.iflytek.mscv5plusdemo.AsrDemo”); 尤其要注意的是这行,不能获取错了类名,否则会报错没办法运行 将打出来的aar包放在Asset/plugin/Android下,之后将该脚本悬挂至Camera上然后在场景中创建三个button来分别调用这个方法。 像上图这样。 然后就打包成apk运行在手机上就行了。 注意事项 我接下来会给出我的项目仓库地址,但是由于讯飞的注册体验时间是三个月,你们拿到之后假如要体验我的项目的话,将我Android工程中的appid和资源 仓库地址 如果有错误的地方请大家指出来,在下方评论即可。我隔一段时间会上一次 |
CopyRight 2018-2019 实验室设备网 版权所有 |