/// <summary> /// 转换语音文件 /// </summary> /// <returns>The string2 audio.</returns> /// <param name="gameConfig">Game config.</param> IEnumerator TurnString2Audio(GameConfig gameConfig) { List <string> updateList = new List <string>(); //通用语音检测部分 CheckStringToAudio(ConfigDataMgr.ExamStartTip, updateList); CheckStringToAudio(ConfigDataMgr.ExamEnd.question, updateList); //试题语音检测部分 for (int i = 0; i < gameConfig.questions.Count; i++) { QuestionData questionData = gameConfig.questions[i]; CheckStringToAudio(questionData.question, updateList); } for (int i = 0; i < updateList.Count; i++) { //设置转换进度 uiLoginWindow.SetProgress((float)i / updateList.Count); yield return(StartCoroutine(ttsString2Audio.Synthesis(updateList[i], result => { if (result.Success) { Debug.LogFormat("Trun Success:{0}", updateList[i]); string fileName = System.Guid.NewGuid().ToString("N"); ResourcesMgr.Instance.WriteAudioFile(fileName, result.data); ConfigDataMgr.Instance.resourceDict.Add(updateList[i], fileName); } else { Debug.LogErrorFormat("Error:Str2Audio errorno<{0}> errormsg<{1}>", result.err_no, result.err_msg); } }))); } uiLoginWindow.SetProgress(1.0f); }
/// <summary> /// 下载试题的语音 /// </summary> /// <returns>The question audio.</returns> /// <param name="gameConfig">Game config.</param> IEnumerator LoadQuestionAudio(GameConfig gameConfig) { List <string> updateList = new List <string>(); //检查开始灯光考试的语音需要更新 if (!ConfigDataMgr.Instance.resourceDict.ContainsKey(gameConfig.examtip_old.exam_audio)) { updateList.Add(gameConfig.examtip_old.exam_audio); } //检查开始灯光考试的语音需要更新 if (!ConfigDataMgr.Instance.resourceDict.ContainsKey(gameConfig.examtip_new.exam_audio)) { updateList.Add(gameConfig.examtip_new.exam_audio); } //检查试题的语音是否需要更新 foreach (var item in gameConfig.questions) { cQuestionData questionData = item.Value; if (!ConfigDataMgr.Instance.resourceDict.ContainsKey(questionData.audio)) { updateList.Add(questionData.audio); } } for (int i = 0; i < updateList.Count; i++) { //设置转换进度 uiLoginWindow.SetProgress((float)i / updateList.Count); yield return(RequestNetworkFile(updateList[i], (result, content, data) => { if (result) { string fileName = System.Guid.NewGuid().ToString("N"); ResourcesMgr.Instance.WriteAudioFile(fileName, data); ConfigDataMgr.Instance.resourceDict.Add(updateList[i], fileName); } })); } uiLoginWindow.SetProgress(1.0f); }