Exemple #1
0
    /// <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);
    }
Exemple #2
0
    /// <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);
    }