Esempio n. 1
0
    public bool InitA(string vpath, string audioStr, string sourceText)
    {
        jumpFlag = false;
        if (string.IsNullOrWhiteSpace(vpath) || string.IsNullOrWhiteSpace(sourceText))
        {
            jumpFlag = true;
            return(false);
        }
        try
        {
            loadOK = false;
            byte[] bytes = CheakerTools.Base64_Decode(audioStr);

            AudioClip ac = WavUtility.ToAudioClip(bytes, 0, "UserPartA");

            userAS.clip       = ac;
            timeLine.minValue = 0f;
            timeLine.value    = 0f;
            //timeLine.maxValue = ac.length;

            textSource.text         = sourceText;
            video.url               = vpath;
            video.prepareCompleted += OnCompete;
            video.errorReceived    += OnError;

            video.Prepare();


            return(true);
        }
        catch
        {
            return(false);
        }
    }
 IEnumerator GetFullResult()
 {
     DialogLoading dialogLoading= GlobalUIManager.guim.CreateNewLoading();
     GlobalUIManager.guim.CreateNewDialogTie("分析数据下载中...");
     string url = GetPermisson.GetServerAddress + "/Grade/GetFullResult.php?ID="+baseExamId+"&token=" +
         LoginToKaoShi.userLoginCallback.data.token;
     UnityWebRequest uwr = UnityWebRequest.Get(url);
     yield return uwr.SendWebRequest();
     if (uwr.isHttpError || uwr.isNetworkError)
     {
        ReloadTip("获取信息时网络出现异常!是否重试?");
     }
     else
     {
         try
         {
             FullResultData frd = JsonUtility.FromJson<FullResultData>(uwr.downloadHandler.text);
             if (frd.code == 0)
             {
               partAClip=WavUtility.ToAudioClip(CheakerTools.Base64_Decode(frd.data.audioPartA),0,"PartA");
                 fullResultData = frd;
                 // var soe = SOEWork.GetMyGrade(frd.data.audioPartA, frd.data.keywordPartA);
                 if (string.IsNullOrWhiteSpace(frd.data.jsonPartA))
                 {
                     GlobalUIManager.guim.CreateNewSelectBox("当前试卷并未批改,是否立即批改?", delegate(bool ok) {
                         if (ok)
                         {
                             cheakingRequestPoster.GoCheak();
                         }
                         else
                         {
                             SceneManager.LoadScene(1);//退出
                         }
                     
                     });
                 }
                 else
                 {
                     CheakingRespondData.ResultClass resultClass = JsonUtility.FromJson<CheakingRespondData.ResultClass>(frd.data.jsonPartA);
                     analyzeManager.LoadAnalyze(resultClass);
                 }
             }
             else
             {
                 ReloadTip(frd.msg+"是否重试?");
             }
         }
         catch (Exception err)
         {
             ReloadTip("未知异常!是否重试?\n" + err.Message);
             Debug.LogError(err.ToString());
         }
     }
     dialogLoading.DestoryThisLoad();
 }
 public bool InitC(string sourceText, string sourceAudio)
 {
     if (string.IsNullOrWhiteSpace(sourceAudio))
     {
         return(false);
     }
     try
     {
         AudioClip myAudio = WavUtility.ToAudioClip(CheakerTools.Base64_Decode(sourceAudio));
         audioSource.clip     = myAudio;
         audioSlider.maxValue = myAudio.length;
         audioSlider.value    = 0f;
         sourceT.text         = sourceText;
         return(true);
     }
     catch
     {
         return(false);
     }
 }
    IEnumerator SavePaper()
    {
        tempPaper.id = classPaper.id;
        uploadHandle.infoText.text = "正在处理录音数据...";
        string rootPath = classPaper.path + "/Memory";

        PaperManager.CreatePath(rootPath);
        string fileName = "TempPaperCELSTWhen" + System.DateTime.Now.ToString("TyyyyMMddhhmmss") + "Random" + Random.Range(-23333, 23333) + ".lhirin";

        tempPath = rootPath + "/" + fileName;


        string partA_b64 = "";

        if (pac.scucess)
        {
            uploadHandle.infoText.text = "正在处理-PartA";
            yield return(new WaitForEndOfFrame());

            partA_b64       = CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PA));
            tempPaper.partA = partA_b64;
        }

        string partBA_b64 = "";
        string partBB_b64 = "";

        if (pbc.scucess)
        {
            for (int i = 0; i < PB_P1.Count; i++)
            {
                uploadHandle.infoText.text = "正在处理-PartB问题" + (i + 1).ToString();
                yield return(new WaitForEndOfFrame());

                partBA_b64 += CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PB_P1[i]));
                if (i != PB_P1.Count - 1)
                {
                    partBA_b64 += "|";
                }
            }
            tempPaper.partBA = partBA_b64;


            for (int i = 0; i < PB_P2.Count; i++)
            {
                uploadHandle.infoText.text = "正在处理-PartB回答" + (i + 1).ToString();
                yield return(new WaitForEndOfFrame());

                partBB_b64 += CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PB_P2[i]));
                if (i != PB_P2.Count - 1)
                {
                    partBB_b64 += "|";
                }
            }
            tempPaper.partBB = partBB_b64;
        }
        string partC_b64 = "";

        if (pcc.scucess)
        {
            uploadHandle.infoText.text = "正在处理-PartC";
            yield return(new WaitForEndOfFrame());

            partC_b64       = CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PA));
            tempPaper.partC = partC_b64;
        }

        tempPaper.isUpload = false;


        uploadHandle.infoText.text = "正在创建缓存...";
        yield return(new WaitForEndOfFrame());

        PaperManager.SaveFile(tempPath, JsonUtility.ToJson(tempPaper));
        UserMemoryManager.InsertIntoList(new UserMemoryList.Common {
            dataPath = tempPath,
            time     = System.DateTime.Now.ToString(),
            type     = UserMemoryList.MemoryType.GD_CELST
        });
        uploadHandle.infoText.text = "缓存创建完毕!";

        GlobalUIManager.guim.CreateNewSelectBox("缓存完毕,是否上传音频呢?\n如果需要机器改卷或他人协助必须上传到服务器.", delegate(bool ok) {
            if (ok)
            {
                StartCoroutine(CheakPaper());
            }
            else
            {
                uploadHandle.gradeObj.SetActive(true);
                uploadHandle.gradeText.text = "用户取消上传!请点击关闭回到大厅进行自评或进行其他操作!";
            }
        });
        //PlayerPrefs.SetString("tempPaper", JsonUtility.ToJson(tempPaper));
        //PlayerPrefs.Save();
    }
Esempio n. 5
0
    public bool InitB(string partBA_Ansers, string partBA_Audios, string partBB_Ansers, string partBB_Audios)
    {
        try
        {
            //  System.Action tempAction = null;
            PaperCheakerCELSTBItemCtrl tempItemCtrl = null;
            if (!string.IsNullOrWhiteSpace(partBA_Ansers) && !string.IsNullOrWhiteSpace(partBA_Audios))//PartA不为空
            {
                string[] partBA_Ansers_strs = partBA_Ansers.Split('/');
                string[] partBA_Audios_strs = partBA_Audios.Split('|');


                // AudioClip[] clips = new AudioClip[partBA_Audios_strs.Length];
                for (int i = 0; i < partBA_Audios_strs.Length; i++)
                {
                    AudioClip clip = WavUtility.ToAudioClip(CheakerTools.Base64_Decode(partBA_Audios_strs[i]), 0, "ParBA_Audio_" + i);
                    PaperCheakerCELSTBItemCtrl pccbic = CommonTools.NewAnObjectA(perfabItemBtn, tarContent).GetComponent <PaperCheakerCELSTBItemCtrl>();
                    if (i < CheakerSceneManager.cheakerSceneManager.celstTempPaper.gradeBA.Length)
                    {
                        if (CheakerSceneManager.cheakerSceneManager.celstTempPaper.gradeBA[i] == -1)
                        {
                            pccbic.SetStatus(false);
                            pccbic.nowTitle  = "三问第" + (i + 1).ToString() + "题";
                            pccbic.text.text = pccbic.nowTitle;
                        }
                        else
                        {
                            pccbic.SetStatus(true);
                            pccbic.nowTitle  = "三问第" + (i + 1).ToString() + "题";
                            pccbic.text.text = pccbic.nowTitle + "-" +
                                               CheakerSceneManager.cheakerSceneManager.celstTempPaper.gradeBA[i].ToString();
                        }



                        pccbic.clip = clip;
                        string anser = "";
                        if (i < partBA_Ansers_strs.Length)
                        {
                            anser = partBA_Ansers_strs[i];
                        }
                        pccbic.tarText = "三问第" + (i + 1).ToString() + "题答案:\n"
                                         + "<Color=Orange>" + anser + "</Color>"
                                         + "\n请依据关键词给分.";
                        pccbic.partName = "A";
                        pccbic.partID   = i;

                        if (tempItemCtrl == null)
                        {
                            tempItemCtrl = pccbic;
                        }
                    }
                    else
                    {
                        GlobalUIManager.guim.CreateNewDialogBox("PartB改卷系统出现异常!");
                    }
                }
            }



            if (!string.IsNullOrWhiteSpace(partBB_Ansers) && !string.IsNullOrWhiteSpace(partBB_Audios))//PartB不为空
            {
                string[] partBB_Ansers_strs = partBB_Ansers.Split('/');
                string[] partBB_Audios_strs = partBB_Audios.Split('|');


                // AudioClip[] clips = new AudioClip[partBB_Audios_strs.Length];
                for (int i = 0; i < partBB_Audios_strs.Length; i++)
                {
                    AudioClip clip = WavUtility.ToAudioClip(CheakerTools.Base64_Decode(partBB_Audios_strs[i]), 0, "ParBB_Audio_" + i);
                    PaperCheakerCELSTBItemCtrl pccbic = CommonTools.NewAnObjectA(perfabItemBtn, tarContent).GetComponent <PaperCheakerCELSTBItemCtrl>();
                    if (i < CheakerSceneManager.cheakerSceneManager.celstTempPaper.gradeBB.Length)
                    {
                        if (CheakerSceneManager.cheakerSceneManager.celstTempPaper.gradeBB[i] == -1)
                        {
                            pccbic.SetStatus(false);
                            pccbic.nowTitle  = "五答第" + (i + 1).ToString() + "题";
                            pccbic.text.text = pccbic.nowTitle;
                        }
                        else
                        {
                            pccbic.SetStatus(true);
                            pccbic.nowTitle  = "五答第" + (i + 1).ToString() + "题";
                            pccbic.text.text = pccbic.nowTitle + "-" + CheakerSceneManager.cheakerSceneManager.celstTempPaper.gradeBB[i].ToString();
                        }

                        pccbic.clip = clip;

                        string anser = "";
                        if (i < partBB_Ansers_strs.Length)
                        {
                            anser = partBB_Ansers_strs[i];
                        }
                        pccbic.tarText = "五答第" + (i + 1).ToString() + "题答案:\n"
                                         + "<Color=Orange>" + anser + "</Color>"
                                         + "\n请依据关键词给分.";
                        pccbic.partName = "B";
                        pccbic.partID   = i;

                        if (tempItemCtrl == null)
                        {
                            tempItemCtrl = pccbic;
                        }
                    }
                    else
                    {
                        GlobalUIManager.guim.CreateNewDialogBox("PartB改卷系统出现异常!");
                    }
                }
            }
            tempItemCtrl?.OnClick();
            if (tempItemCtrl != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        catch (System.Exception err)
        {
            Debug.Log(err.ToString());
            return(false);
        }
    }
Esempio n. 6
0
    IEnumerator CheakPaper()
    {
        tempPaper.id = classPaper.id;
        uploadHandle.infoText.text = "正在处理录音数据...";
        //string rootPath = classPaper.path + "/TEMP/Exam" + System.DateTime.Now.ToString("TyyyyMMddhhmmss");
        // PaperManager.CreatePath(rootPath);
        //rootPath += "/";
        string partA_b64 = "";

        if (pac.scucess)
        {
            uploadHandle.infoText.text = "正在处理-PartA";
            yield return(new WaitForEndOfFrame());

            partA_b64       = CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PA));
            tempPaper.partA = partA_b64;
        }

        string partBA_b64 = "";
        string partBB_b64 = "";

        if (pbc.scucess)
        {
            for (int i = 0; i < PB_P1.Count; i++)
            {
                uploadHandle.infoText.text = "正在处理-PartB问题" + (i + 1).ToString();
                yield return(new WaitForEndOfFrame());

                partBA_b64 += CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PB_P1[i]));
                if (i != PB_P1.Count - 1)
                {
                    partBA_b64 += "|";
                }
            }
            tempPaper.partBA = partBA_b64;


            for (int i = 0; i < PB_P2.Count; i++)
            {
                uploadHandle.infoText.text = "正在处理-PartB回答" + (i + 1).ToString();
                yield return(new WaitForEndOfFrame());

                partBB_b64 += CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PB_P2[i]));
                if (i != PB_P2.Count - 1)
                {
                    partBB_b64 += "|";
                }
            }
            tempPaper.partBB = partBB_b64;
        }
        string partC_b64 = "";

        if (pcc.scucess)
        {
            uploadHandle.infoText.text = "正在处理-PartC";
            yield return(new WaitForEndOfFrame());

            partC_b64       = CheakerTools.Base64_Encode(WavUtility.FromAudioClip(PA));
            tempPaper.partC = partC_b64;
        }

        tempPaper.isUpload = false;


        uploadHandle.infoText.text = "正在创建缓存...";
        yield return(new WaitForEndOfFrame());

        PlayerPrefs.SetString("tempPaper", JsonUtility.ToJson(tempPaper));
        PlayerPrefs.Save();


        uploadHandle.infoText.text = "正在上传...";
        yield return(new WaitForEndOfFrame());


        StartCoroutine(UploadVoiceHandle.Uploader(classPaper.id, partA_b64, partBA_b64, partBB_b64, partC_b64,
                                                  delegate(ulong size, float process) {
            uploadHandle.process.fillAmount = process;

            uploadHandle.processText.text =
                "(" + GetFileSize(size) + "/" + GetFileSize((ulong)(float.Parse(size.ToString()) / process)) + ")" + Mathf.CeilToInt(process * 100).ToString() + "%";
        },
                                                  OnUploadDone

                                                  ));
    }