/// <summary> /// 播放语音 /// </summary> /// <param name="audioName">语音路径</param> /*public static void PlayAudio(string audioName) * { * if (!m_bInited) * m_Instance.Init(); * if (m_Status == SpeechStatus.SS_DEFAULT) * { * m_Status = SpeechStatus.SS_PLAYING; * SpeechAPI.PlayAudio(audioName); * if (ChatInfoLogic.Instance() != null) * { * ChatInfoLogic.Instance().OnPlayVoiceChat(); * } * } * } * * /// <summary> * /// 播放buffer内的语音 * /// </summary> * /// <param name="audioIdx"></param> * public static void PlayAudio(byte[] buffer) * { * if (!m_bInited) * m_Instance.Init(); * * if (m_Status == SpeechStatus.SS_DEFAULT && buffer != null) * { * m_Status = SpeechStatus.SS_PLAYING; * SpeechAPI.PlayAudioBuffer(buffer); * if (ChatInfoLogic.Instance() != null) * { * ChatInfoLogic.Instance().OnPlayVoiceChat(); * } * } * }*/ public static void PlayAudio(int voiceindex, byte[] buffer, bool bForce = false) { if (!m_bInited) { m_Instance.Init(); } if (buffer != null) { if (m_Status == SpeechStatus.SS_DEFAULT || bForce) { m_Status = SpeechStatus.SS_PLAYING; GameManager.gameManager.SoundManager.MusicDown(); SpeechAPI.PlayAudioBuffer(buffer); GameManager.gameManager.PlayerDataPool.VoiceChatDownloadRecord.PlayingVoiceIndex = voiceindex; if (ChatInfoLogic.Instance() != null) { ChatInfoLogic.Instance().OnPlayVoiceChat(); } #if UNITY_ANDROID && !UNITY_EDITOR SpeechEngine.Instance().InvokeRepeating("ForcePlayOver", 20.0f, 1.0f); #endif } } }
/// <summary> /// 错误回调函数 /// </summary> /// <param name="errorCode">错误代码</param> private void ProcessErrorCode(string errorCode) { if (/*!errorCode.Equals("0") && */ m_ErrorHandler != null) { m_ErrorHandler(SpeechAPI.GetErrorCodeDesc(errorCode)); } m_Status = SpeechStatus.SS_DEFAULT; }
/// <summary> /// 设置录音时长上限 /// </summary> /// <param name="maxInternal">时长,单位s</param> public void SetMaxRecordInterval(float maxInternal) { if (!m_bInited) { m_Instance.Init(); } SpeechAPI.SetMaxRecordInterval(maxInternal); }
public static byte[] GetAudioBuffer() { if (!m_bInited) { m_Instance.Init(); } return(SpeechAPI.GetAudioBuffer()); }
/// <summary> /// 开始录音 /// </summary> public static void StartRecording() { if (!m_bInited) { m_Instance.Init(); } if (m_Status == SpeechStatus.SS_DEFAULT) { SpeechAPI.StartRecording(); } }
/// <summary> /// 取消语音任务 /// </summary> public static void CancleTask() { if (!m_bInited) { m_Instance.Init(); } if (m_Status == SpeechStatus.SS_STARTED || m_Status == SpeechStatus.SS_READY || m_Status == SpeechStatus.SS_LISTENING || m_Status == SpeechStatus.SS_RECOGNIZING) { SpeechAPI.CancleTask(); } }
/// <summary> /// 停止录音 /// </summary> public static void StopRecording() { if (!m_bInited) { m_Instance.Init(); } if (m_Status == SpeechStatus.SS_STARTED || m_Status == SpeechStatus.SS_READY || m_Status == SpeechStatus.SS_LISTENING) { SpeechAPI.StopRecording(); #if UNITY_ANDROID && !UNITY_EDITOR SpeechEngine.Instance().InvokeRepeating("StatusRecover", 11.0f, 1.0f); #endif } }
/// <summary> /// 初始化 /// </summary> protected void Init() { m_Instance.SetUnityReceiver(this.transform.name); SpeechAPI.Init(m_sAppId, m_sAppKey); m_bInited = true; }
/// <summary> /// 设置回调对象名称 /// </summary> /// <param name="gbName"></param> public void SetUnityReceiver(string gbName) { SpeechAPI.SetUnityReceiver(gbName); }