Esempio n. 1
0
        public override void startDecoding()
        {
            if (decoderState == DecoderNative.DecoderState.INITIALIZED)
            {
                if (!DecoderNative.nativeStartDecoding(decoderID))
                {
                    print(LOG_TAG + " Decoding not start.");
                    return;
                }

                decoderState    = DecoderNative.DecoderState.BUFFERING;
                globalStartTime = AudioSettings.dspTime;
                hangTime        = AudioSettings.dspTime - globalStartTime;

                isVideoReadyToReplay = isAudioReadyToReplay = false;
                if (isAudioEnabled && !isAllAudioChEnabled)
                {
                    StartCoroutine("audioPlay");
                    backgroundWorker = new BackgroundWorker();
                    backgroundWorker.WorkerSupportsCancellation = true;
                    backgroundWorker.DoWork += pullAudioData;
                    backgroundWorker.RunWorkerAsync();
                }
            }
        }
Esempio n. 2
0
        public static void loadVideoThumb(GameObject obj, string filePath, float time)
        {
            if (!File.Exists(filePath))
            {
                print(LOG_TAG + " File not found!");
                return;
            }

            var decID     = -1;
            var width     = 0;
            var height    = 0;
            var totalTime = 0.0f;

            DecoderNative.nativeCreateDecoder(filePath, ref decID);
            DecoderNative.nativeGetVideoFormat(decID, ref width, ref height, ref totalTime);
            if (!DecoderNative.nativeStartDecoding(decID))
            {
                print(LOG_TAG + " Decoding not start.");
                return;
            }

            var thumbY   = new Texture2D(width, height, TextureFormat.Alpha8, false);
            var thumbU   = new Texture2D(width / 2, height / 2, TextureFormat.Alpha8, false);
            var thumbV   = new Texture2D(width / 2, height / 2, TextureFormat.Alpha8, false);
            var thumbMat = obj.GetComponent <MeshRenderer>().material;

            if (thumbMat == null)
            {
                print(LOG_TAG + " Target has no MeshRenderer.");
                DecoderNative.nativeDestroyDecoder(decID);
                return;
            }

            thumbMat.SetTexture("_YTex", thumbY);
            thumbMat.SetTexture("_UTex", thumbU);
            thumbMat.SetTexture("_VTex", thumbV);

            DecoderNative.nativeLoadThumbnail(decID, time, thumbY.GetNativeTexturePtr(), thumbU.GetNativeTexturePtr(),
                                              thumbV.GetNativeTexturePtr());
            DecoderNative.nativeDestroyDecoder(decID);
        }