/// <summary>
        /// View video
        /// </summary>
        private void ViewVideo()
        {
            //media details
            int    mediaId = obj.mediaId;
            string uri     = obj.uri;
            int    _top    = obj.top;
            int    _left   = obj.left;

            string _filePath = Uri.UnescapeDataString(uri).Replace('+', ' ');
            Uri    uriVideo  = new Uri(uri);

            duration = obj.duration;
            if (duration == 0)
            {
                TimeSpan videoDuration = PlayerSettings.GetVideoDuration(_filePath);
                duration = videoDuration.TotalSeconds;
            }

            //transition IN details
            string transIn          = obj.transIn;
            string transInDirection = obj.transInDirection;
            double transInDuration  = obj.transInDuration;

            duration += (transInDuration / 1000);

            //transition OUT details
            string transOut          = obj.transOut;
            string transOutDirection = obj.transOutDirection;
            double transOutDuration  = obj.transOutDuration;

            duration += (transOutDuration / 1000);

            medaiElemnt        = new MediaElement();
            medaiElemnt.Source = uriVideo;
            int volume = 0;

            if (obj.mute == 1)
            {
                volume = 0;
            }
            else
            {
                volume = 100;
            }
            medaiElemnt.Volume = volume;
            if (obj.loop == 1)
            {
                medaiElemnt.MediaEnded += MedaiElemnt_MediaEnded;
            }

            this.videoPanel.Children.Add(medaiElemnt);

            TimerMediaVideo          = new System.Timers.Timer();
            TimerMediaVideo.Elapsed += new ElapsedEventHandler(MediaTimer_Tick);
            TimerMediaVideo.Interval = 1000 * duration;
            TimerMediaVideo.Start();

            if (transIn != null)
            {
                MediaSupport.MoveAnimation(medaiElemnt, OpacityProperty, transIn, transInDirection, transInDuration, "in", _top, _left);
            }
            double transOutStartTime = duration - (transOutDuration / 1000);

            if (transOut != null)
            {
                var timerTransition = new DispatcherTimer {
                    Interval = TimeSpan.FromSeconds(transOutStartTime)
                };
                timerTransition.Start();
                timerTransition.Tick += (sender1, args) =>
                {
                    timerTransition.Stop();
                    MediaSupport.MoveAnimation(medaiElemnt, OpacityProperty, transOut, transOutDirection, transOutDuration, "out", _top, _left);
                };
            }
        }
        private void RenderImage()
        {
            //media details
            int    mediaId = obj.mediaId;
            string uri     = obj.uri;

            Uri    uriImage  = new Uri(uri);
            string _filePath = Uri.UnescapeDataString(uri).Replace('+', ' ');

            int _top  = obj.top;
            int _left = obj.left;

            duration = obj.duration;

            //transition IN details
            string transIn          = obj.transIn;
            string transInDirection = obj.transInDirection;
            double transInDuration  = obj.transInDuration;

            duration += (transInDuration / 1000);

            //transition OUT details
            string transOut          = obj.transOut;
            string transOutDirection = obj.transOutDirection;
            double transOutDuration  = obj.transOutDuration;

            duration += (transOutDuration / 1000);

            img = new Image()
            {
                Name = "Img" + obj.regionId,
            };

            img.Source = new BitmapImage(uriImage);

            this.ImagePanel.Children.Add(img);


            TimerMediaImg          = new System.Timers.Timer();
            TimerMediaImg.Elapsed += new ElapsedEventHandler(MediaTimerImg_Tick);
            TimerMediaImg.Interval = 1000 * duration;
            TimerMediaImg.Start();

            if (transIn != null)
            {
                MediaSupport.MoveAnimation(img, OpacityProperty, transIn, transInDirection, transInDuration, "in", _top, _left);
            }
            double transOutStartTime = duration - (transOutDuration / 1000);

            if (transOut != null)
            {
                var timerTransition = new DispatcherTimer {
                    Interval = TimeSpan.FromSeconds(transOutStartTime)
                };
                timerTransition.Start();
                timerTransition.Tick += (sender1, args) =>
                {
                    timerTransition.Stop();
                    MediaSupport.MoveAnimation(img, OpacityProperty, transOut, transOutDirection, transOutDuration, "out", _top, _left);
                };
            }
        }
        /// <summary>
        /// View web site
        /// </summary>
        private void ViewWeb()
        {
            string _regionID = obj.regionId;
            //media details
            int    mediaId = obj.mediaId;
            string modeId  = obj.modeid;
            int    _top    = obj.top;
            int    _left   = obj.left;

            string _filePath  = "";
            bool   nativeOpen = modeId != string.Empty && modeId == "1";
            string url        = obj.uri;

            if (nativeOpen)
            {
                // If we are modeid == 1, then just open the webpage without adjusting the file path
                _filePath = Uri.UnescapeDataString(obj.uri).Replace('+', ' ');
            }
            else
            {
                // Set the file path
                _filePath = PlayerSettings.libraryPath + mediaId + ".htm";
            }

            duration = MediaSupport.ReadControlMetaDuration(_filePath);
            if (duration == 0)
            {
                duration = obj.duration;
            }

            //transition IN details
            string transIn          = obj.transIn;
            string transInDirection = obj.transInDirection;
            double transInDuration  = obj.transInDuration;

            duration += (transInDuration / 1000);

            //transition OUT details
            string transOut          = obj.transOut;
            string transOutDirection = obj.transOutDirection;
            double transOutDuration  = obj.transOutDuration;

            duration += (transOutDuration / 1000);

            web = new ChromiumWebBrowser()
            {
                Name = "region" + _regionID
            };

            if (PlayerSettings.firstLoadCheck == 0)
            {
                var timer = new DispatcherTimer {
                    Interval = TimeSpan.FromSeconds(2)
                };
                timer.Start();
                timer.Tick += (sender1, args) =>
                {
                    timer.Stop();
                    web.Address = _filePath;
                };
            }
            else
            {
                this.Dispatcher.Invoke(() =>
                {
                    web.Address = _filePath;
                });
            }

            this.webPanel.Children.Add(web);

            TimerMedia          = new System.Timers.Timer();
            TimerMedia.Elapsed += new ElapsedEventHandler(webtimer_Tick);
            TimerMedia.Interval = 1000 * duration;
            TimerMedia.Start();

            //transition IN render
            if (transIn != null)
            {
                MediaSupport.MoveAnimation(web, OpacityProperty, transIn, transInDirection, transInDuration, "in", _top, _left);
            }

            ////transition OUT render
            double transOutStartTime = duration - (transOutDuration / 1000);

            if (transOut != null)
            {
                var timerTransition = new DispatcherTimer {
                    Interval = TimeSpan.FromSeconds(transOutStartTime)
                };
                timerTransition.Start();
                timerTransition.Tick += (sender1, args) =>
                {
                    timerTransition.Stop();
                    MediaSupport.MoveAnimation(web, OpacityProperty, transOut, transOutDirection, transOutDuration, "out", _top, _left);
                };
            }
        }
Exemple #4
0
        private void ViewFlash()
        {
            string _regionID = obj.regionId;
            //media details
            int    mediaId = obj.mediaId;
            string modeId  = obj.modeid;

            int _top  = obj.top;
            int _left = obj.left;

            string _filePath  = "";
            bool   nativeOpen = modeId != string.Empty && modeId == "1";


            _filePath = obj.uri;

            duration = obj.duration;

            string flashWeb = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0'  id='analog_clock' align='middle'>";

            flashWeb += "<param name='allowScriptAccess' value='sameDomain' />";
            flashWeb += "<param name='movie' value='" + _filePath + "' />";
            flashWeb += "<param name='quality' value='high' />";
            flashWeb += "<param name='bgcolor' value='#000' />";
            flashWeb += "<param name='WMODE' value='transparent' />";
            flashWeb += "<embed src='" + _filePath + "' quality='high' wmode='transparent' bgcolor='#ffffff' width='" + obj.width + "' height='" + obj.height + "' name='analog_clock' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />";
            flashWeb += "</object>";

            string temSavePath = PlayerSettings.libraryPath + "temp" + mediaId + ".htm";

            using (FileStream fs = new FileStream(temSavePath, FileMode.Create))
            {
                using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
                {
                    w.WriteLine(flashWeb);
                }
            }

            Uri uriFlash = new Uri(temSavePath);

            //transition IN details
            string transIn          = obj.transIn;
            string transInDirection = obj.transInDirection;
            double transInDuration  = obj.transInDuration;

            duration += (transInDuration / 1000);

            //transition OUT details
            string transOut          = obj.transOut;
            string transOutDirection = obj.transOutDirection;
            double transOutDuration  = obj.transOutDuration;

            duration += (transOutDuration / 1000);

            web = new ChromiumWebBrowser()
            {
                Name = "region" + _regionID
            };
            web.Address = temSavePath;

            TimerMediaFlash          = new System.Timers.Timer();
            TimerMediaFlash.Elapsed += new ElapsedEventHandler(Flashtimer_Tick);
            TimerMediaFlash.Interval = 1000 * duration;
            TimerMediaFlash.Start();

            this.FlashPanel.Children.Add(web);

            if (transIn != null)
            {
                MediaSupport.MoveAnimation(web, OpacityProperty, transIn, transInDirection, transInDuration, "in", _top, _left);
            }

            double transOutStartTime = duration - (transOutDuration / 1000);

            if (transOut != null)
            {
                var timerTransition = new DispatcherTimer {
                    Interval = TimeSpan.FromSeconds(transOutStartTime)
                };
                timerTransition.Start();
                timerTransition.Tick += (sender, args) =>
                {
                    timerTransition.Stop();
                    MediaSupport.MoveAnimation(web, OpacityProperty, transOut, transOutDirection, transOutDuration, "out", _top, _left);
                };
            }
        }