private static void initIFlyVoice() { #if UNITY_ANDROID //Initialize AndroidJavaClass(Please do not delete the commended codes for that those code are for test and check) UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); currentActivity = UnityPlayer.GetStatic <AndroidJavaObject>("currentActivity"); // string param = "appid=" + AppID + ",engine_mode=msc"; // Set APPID AndroidJavaClass SpeechUtility = new AndroidJavaClass("com.iflytek.cloud.SpeechUtility"); SpeechUtility.CallStatic <AndroidJavaObject> ("createUtility", currentActivity.Call <AndroidJavaObject>("getApplicationContext"), new AndroidJavaObject("java.lang.String", param) ); //Init Listeners mInitListener = new XfInitListener(); mTtsListener = new XfSynthesizerListener(); mRecognizerListener = new XfRecognizerListener(); //Init mTts and mIat if (mInitListener != null) { SpeechSynthesizer = new AndroidJavaClass("com.iflytek.cloud.SpeechSynthesizer"); SpeechRecognizer = new AndroidJavaClass("com.iflytek.cloud.SpeechRecognizer"); mTts = SpeechSynthesizer.CallStatic <AndroidJavaObject> ("createSynthesizer", currentActivity, mInitListener); mIat = SpeechRecognizer.CallStatic <AndroidJavaObject> ("createRecognizer", currentActivity, mInitListener); } inited = true; #endif }
public static void initIFlyVoice() { #if UNITY_ANDROID //Initialize AndroidJavaClass(Please do not delete the commended codes for that those code are for test and check) UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); currentActivity = UnityPlayer.GetStatic <AndroidJavaObject>("currentActivity"); // string param = "appid=" + AppID + ",engine_mode=msc"; // Set APPID AndroidJavaClass SpeechUtility = new AndroidJavaClass("com.iflytek.cloud.SpeechUtility"); SpeechUtility.CallStatic <AndroidJavaObject>("createUtility", currentActivity.Call <AndroidJavaObject>("getApplicationContext"), new AndroidJavaObject("java.lang.String", param) ); //Init Listeners mInitListener = new XfInitListener(); mTtsListener = new XfSynthesizerListener(); mRecognizerListener = new XfRecognizerListener(); mWakeupListener = new XfWakeupListener(); //Init mTts and mIat if (mInitListener != null) { SpeechSynthesizer = new AndroidJavaClass("com.iflytek.cloud.SpeechSynthesizer"); SpeechRecognizer = new AndroidJavaClass("com.iflytek.cloud.SpeechRecognizer"); SpeechWakeup = new AndroidJavaClass("com.iflytek.cloud.VoiceWakeuper"); mTts = SpeechSynthesizer.CallStatic <AndroidJavaObject>("createSynthesizer", currentActivity, mInitListener); mIat = SpeechRecognizer.CallStatic <AndroidJavaObject>("createRecognizer", currentActivity, mInitListener); mIvw = SpeechWakeup.CallStatic <AndroidJavaObject>("createWakeuper", currentActivity, mInitListener); //创建唤醒对象后直接在init中启用(这个项目中没有单独在程序初始化时调用init,而是写作static方法) setIvwParam(); int code = mIvw.Call <int>("startListening", mWakeupListener); if (code == 0) { "唤醒初始化完成".ShowAsToast(); } } else { "初始化失败".ShowAsToast(); } inited = true; #endif }