Пример #1
0
    /// <summary>
    /// Inits the file list and init textures preview...
    /// </summary>
    public void InitFileList()
    {
        //
        DeserializeAndRead();

        //get texture...
        if (null == dicFileItems)
        {
            dicFileItems = new FileList();
        }
        List <FileItem> dicFileList = dicFileItems.lstFileItems;
        List <FileItem> deleteList  = new List <FileItem>();

        foreach (var item in dicFileList)
        {
            //if ( countIndex < item.Key )
            //countIndex = item.Key;

            //FileItem file
            if (item._fileType == FileItem.FileType.FileType_Video)
            {
                //string filePath = "file://" + item.Value.
                OpenFileNameEx fileinfo = item._fileInfo;
                string         filePath = "file:///" + fileinfo.file;
                Texture2D      texture  = VideoPreviewer.Instance().LoadTexture(filePath);
                if (texture == null)
                {
                    deleteList.Add(item);
                    continue;
                }

                Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
                string key    = GetFileShortName(filePath);
                FileListControl.Instance().AddPreViewSprite(key, sprite);
            }
            else if (item._fileType == FileItem.FileType.FileType_Web)
            {
                string    weburl  = item._webUrl;
                Texture2D texture = WebPreviewer.Instance().LoadTexture(weburl);
                if (texture == null)
                {
                    deleteList.Add(item);
                    continue;
                }

                Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
                string key    = GetUrlShortName(weburl);
                FileListControl.Instance().AddPreViewWeb(key, sprite);
            }
        }

        foreach (var itemDel in deleteList)
        {
            dicFileList.Remove(itemDel);
        }

        Save();
    }
Пример #2
0
    public void TestLoadPicture()
    {
        Texture2D texture       = VideoPreviewer.Instance().LoadTexture("file:///C:/Unity3d/dangmu/dangmu/Assets/Dangmu/Textures/WeChat_20180305193437.mp4");
        Sprite    preViewSprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height),
                                                new Vector2(0.5f, 0.5f));

        previewImage.sprite = preViewSprite;

        Debug.Log("TestLoadPicture##successed:" + preViewSprite.name);
    }
 void Update()
 {
     if (objectThread.BUnityWorkMutex)
     {
         lock (objectThread) {
             objectThread.BUnityWorkMutex = false;
             VideoPreviewer.Instance().StartPreview(objectThread.UnityFullpath, PreViewDone);
         }
     }
 }
 // Update is called once per frame
 void Update()
 {
     if (fileDialog.objectThread.BUnityWorkMutex)
     {
         lock (fileDialog.objectThread) {
             fileDialog.objectThread.BUnityWorkMutex = false;
             VideoPreviewer.Instance().StartPreview(fileDialog.objectThread.UnityFullpath, fileDialog.PreViewDone);
             fileDialog.merialDlg.Hide();
         }
     }
 }
    IEnumerator CoroutineSelect()
    {
        OpenFileName ofn = new OpenFileName();

        ofn.structSize = Marshal.SizeOf(ofn);

        //三菱(*.gxw)\0*.gxw\0西门子(*.mwp)\0*.mwp\0All Files\0*.*\0\0
        ofn.filter = "All Files\0*.mp4;*.mpg\0\0";

        ofn.file = new string(new char[256]);

        ofn.maxFile = ofn.file.Length;

        ofn.fileTitle = new string(new char[64]);

        ofn.maxFileTitle = ofn.fileTitle.Length;

        ofn.initialDir = UnityEngine.Application.dataPath;       //默认路径

        ofn.title = "Open Picture";

        ofn.defExt = "mp4";                                                         //显示文件的类型
        //注意 一下项目不一定要全选 但是0x00000008项不要缺少
        ofn.flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008; //OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR


        if (DllComdlg.GetOpenFileName(ofn))
        {
            // StartCoroutine(WaitLoad(ofn.file));//加载图片到panle
            string filename = "file:///" + Utility.StrictLinuxStyle(ofn.file);
            Debug.Log("Selected file with full path========: " + filename);
            ofn.file = filename;

            FileItem item = new FileItem();
            item._fileInfo = new OpenFileNameEx(ofn);
            item._fileType = FileItem.FileType.FileType_Video;
            //FileListControl.Instance ().AddFile (item);

            //file path must convert for url path...
            //VideoPreviewer.Instance().StartPreview  ("file:///C:/Unity3d/dangmu/dangmu/Assets/Dangmu/Textures/WeChat_20180305193437.mp4", PreViewDone);

            lock (VideoPreviewer.Instance()) {
                VideoPreviewer.Instance().StartPreview(filename, PreViewDone);
            }
            //StartCoroutine ( WaitLoadTexture(ofn.file) );
        }
        yield return(0);
    }
Пример #6
0
 // Use this for initialization
 void Start()
 {
     //TestLoadPicture ();
     VideoPreviewer.Instance().StartPreview("file:///C:/Unity3d/dangmu/dangmu/Assets/Dangmu/Textures/WeChat_20180305193437.mp4", PreViewDone);
     //VideoPreviewer.Instance().StartPreview ("file://C:\\Unity3d\\dangmu\\dangmu\\Assets\\Dangmu\\Textures\\WeChat_20180305193437.mp4", PreViewDone);
 }