コード例 #1
0
    /// <summary>
    /// 写单页control xml结果
    /// </summary>
    /// <param name="pageNum"></param>
    public void WriteResult(int pageNum)
    {
        string xmlpath = PPTGlobal.PPTPath + pageNum + "/control_" + pageNum + ".xml";

        Debug.Log(xmlpath);
        if (File.Exists(xmlpath))
        {
            Debug.Log("存在旧文件:" + xmlpath.Replace(".xml", "_" + PublicTools.getTime() + ".xml"));
            File.Move(xmlpath, xmlpath.Replace(".xml", "_" + PublicTools.getTime() + ".xml"));
        }

        PPTResourcePool.slideObjs[pageNum].BroadcastMessage("DoSort", SendMessageOptions.DontRequireReceiver);

        SlideDoc     tmpDoc     = PublicTools.DeepCopy(PPTResourcePool.slideDoc);
        List <Slide> tempslides = new List <Slide>();

        foreach (Slide tempSlide in tmpDoc.slides)
        {
            if (tempSlide.pageNum == pageNum)
            {
                tempslides.Add(PublicTools.DeepCopy(tempSlide));
                break;
            }
        }
        tmpDoc.slides = tempslides;

        PublicTools.SaveObject(xmlpath, tmpDoc);
        clearXml(xmlpath);


        //document.Save(xmlpath);
    }
コード例 #2
0
    /// <summary>
    /// 读取xml,加载资源
    /// </summary>
    /// <returns></returns>
    public bool readXml()
    {
        string xmlpath = string.Empty;

        if (PPTGlobal.PPTEnv == PPTGlobal.PPTEnvironment.PPTPlayer)
        {
            xmlpath = PPTGlobal.PPTPath + "ppt_control.xml";
        }
        else
        {
            xmlpath = PPTGlobal.PPTPath + "control.xml";
        }
        //Debug.Log(xmlpath);
        if (File.Exists(xmlpath))
        {
            try
            {
                slideDoc = PublicTools.Deserialize <SlideDoc>(xmlpath);
            }
            catch
            {
                Debug.Log("格式转换失败" + xmlpath);
            }
            return(true);
        }
        else
        {
            if (PPTGlobal.PPTEnv == PPTGlobal.PPTEnvironment.PPTPlayer)
            {
                Debug.Log("获取文件失败:" + xmlpath);
            }
            else
            {
                loadingText.text = "获取文件失败:" + xmlpath;
                Debug.Log(loadingText.text);
            }
            return(false);
        }
    }
コード例 #3
0
    /// <summary>
    /// 结束播放
    /// </summary>
    public void PPTEnd()
    {
        TopCanvas.SetActive(false);

        loadCanvas.SetActive(true);
        if (PPTGlobal.PPTEnv == PPTGlobal.PPTEnvironment.PPTPlayer)
        {
            homePage.SetActive(true);
        }
        loadingText.text    = "";
        PPTGlobal.pptStatus = PPTGlobal.PPTStatus.unziping;
        foreach (GameObject obj in slideObjs.Values)
        {
            Destroy(obj);
        }
        for (int i = 0; i < buttonScrollContent.childCount; i++)
        {
            Destroy(buttonScrollContent.GetChild(i).gameObject);
        }
        slideObjs.Clear();
        slideDoc = null;
        slidePoss.Clear();
        slides.Clear();
    }
コード例 #4
0
    /// <summary>
    /// 录制文件导出协程
    /// </summary>
    /// <returns></returns>
    public IEnumerator exportRecord()
    {
        saveWaitPanelText.text    = "正在导出录制文件";
        exportButton.interactable = false;
        yield return(null);

        try
        {
            List <Slide> tempslides = new List <Slide>();
            SlideDoc     tmpDoc     = PublicTools.DeepCopy(PPTResourcePool.slideDoc);
            string       xmlpath;
            foreach (Slide tempSlide in tmpDoc.slides)
            {
                int tempPageNum = tempSlide.pageNum;
                xmlpath = PPTGlobal.PPTPath + tempPageNum + "/control_" + tempPageNum + ".xml";
                if (File.Exists(xmlpath))
                {
                    try
                    {
                        SlideDoc tempPageDoc = PublicTools.Deserialize <SlideDoc>(xmlpath);
                        tempslides.Add(tempPageDoc.slides[0]);
                    }
                    catch
                    {
                        Debug.Log("格式转换失败" + xmlpath);
                    }
                }
                else
                {
                    //如果此页没有录制,默认保存PPT导出记录
                    tempslides.Add(tempSlide);
                }
            }
            xmlpath = PPTGlobal.PPTPath + "control.xml";
            if (File.Exists(xmlpath))
            {
                File.Delete(xmlpath);
            }
            tmpDoc.slides = tempslides;
            PublicTools.SaveObject(xmlpath, tmpDoc);

            string sourcePath = PPTGlobal.PPTPath.Replace("\\", "/");
            if (sourcePath.EndsWith("/"))
            {
                sourcePath = sourcePath.Substring(0, sourcePath.Length - 1);
            }
            string DirectName = sourcePath.Substring(sourcePath.LastIndexOf("/") + 1);
            Debug.Log(@"EXPORT:" + PPTGlobal.PPTPath);
            if (!Directory.Exists(exportPath))
            {
                Vesal_DirFiles.CreateDir(exportPath);
            }
            Vesal_DirFiles.ZipDirectory(PPTGlobal.PPTPath.Substring(0, PPTGlobal.PPTPath.Length - 1), @"" + exportPath + DirectName + ".vsl");
            //Debug.LogError("压缩文件");
            Debug.Log(@"EXPORT:" + exportPath + DirectName + ".vsl");
            //打开文件夹

            OpenWeiKePlayer(exportPath, DirectName);
            //打开播放器加载资源
        }
        catch (Exception e)
        {
            Debug.Log(e.Message);
            Debug.Log(e.StackTrace);
        }
        yield return(null);

        exportButton.interactable = true;
        saveWaitPanelText.text    = "导出完成!";
        //saveWaitPanel.SetActive(false);
        //quitCanvas.SetActive(false);
    }