private async void BtStart_Click(object sender, EventArgs e)
        {
            mmLog.Text = string.Empty;

            MediaPlayer1.Debug_Mode = cbDebugMode.Checked;

            if (_videoInfoList.Count == 0)
            {
                MessageBox.Show("Please read formats first.");
                return;
            }

            MediaPlayer1.Source_Mode     = VFMediaPlayerSource.LAV;
            MediaPlayer1.Audio_PlayAudio = false;

            MediaPlayer1.Audio_AdditionalStreams_Clear();

            MediaPlayer1.FilenamesOrURL.Clear();
            MediaPlayer1.FilenamesOrURL.Add(_videoInfoList[cbVideoStream.SelectedIndex].Url);

            if (_videoInfoList[cbVideoStream.SelectedIndex].ToString().Contains("Muxed"))
            {
                MediaPlayer1.Audio_PlayAudio = true;
            }

            if (cbAudioStream.SelectedIndex > 0)
            {
                MediaPlayer1.Audio_PlayAudio = true;
                MediaPlayer1.Audio_AdditionalStreams_Add(_audioInfoList[cbAudioStream.SelectedIndex].Url);
            }

            await MediaPlayer1.PlayAsync();

            timer1.Start();
        }
Exemple #2
0
        private void AddFile(string filename)
        {
            var info = new PIPInfo();

            // first file should be added as usual, other files using PIP API
            if (MediaPlayer1.FilenamesOrURL.Count == 0)
            {
                MediaPlayer1.FilenamesOrURL.Add(filename);
                lbSourceFiles.Items.Add($@"{filename} (entire screen)");
                info.Rect  = new Rectangle(0, 0, 0, 0);
                info.Alpha = 1.0f;
            }
            else
            {
                int left   = Convert.ToInt32(edPIPFileLeft.Text);
                int top    = Convert.ToInt32(edPIPFileTop.Text);
                int width  = Convert.ToInt32(edPIPFileWidth.Text);
                int height = Convert.ToInt32(edPIPFileHeight.Text);

                MediaPlayer1.PIP_Sources_Add(filename, left, top, width, height);
                lbSourceFiles.Items.Add($@"{filename} ({left}.{top}px, width: {width}px, height: {height}px)");
                info.Rect = new Rectangle(left, top, width, height);

                info.Alpha = tbStreamTransparency.Value / 100.0f;
            }

            info.Filename = filename;
            info.ZOrder   = _lastZOrder--;

            _pipInfos.Add(info);

            //lbSourceFiles.SelectedIndex = _pipInfos.Count - 1;
        }
        private void btStart_Click(object sender, EventArgs e)
        {
            if (lbSourceFiles.Items.Count < 2)
            {
                MessageBox.Show("You must add 2 or more files to test seamless playback.");
                return;
            }

            InitPlayer(MediaPlayer1);
            InitPlayer(MediaPlayer2);

            foreach (var item in lbSourceFiles.Items)
            {
                sourceFiles.Add(item.ToString());
            }

            CurrentPlayer = MediaPlayer1;

            MediaPlayer1.Show();
            MediaPlayer2.Hide();
            PlayFile(sourceFiles[0], MediaPlayer1);
            sourceFiles.RemoveAt(0);

            PlayFile(sourceFiles[0], MediaPlayer2);
            sourceFiles.RemoveAt(0);
            MediaPlayer2.Pause();
        }
 private void tbTimeline_Scroll(object sender, EventArgs e)
 {
     if (_timeTag == 0)
     {
         MediaPlayer1.Position_Set_Time(TimeSpan.FromSeconds(tbTimeline.Value));
     }
 }
 private async void Form1_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (MediaPlayer1.Status != VFMediaPlayerStatus.Free)
     {
         await MediaPlayer1.StopAsync();
     }
 }
 private void cbDVDControlChapter_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cbDVDControlChapter.SelectedIndex > 0)
     {
         MediaPlayer1.DVD_Chapter_Select(cbDVDControlChapter.SelectedIndex);
     }
 }
 private void cbDVDControlAudio_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cbDVDControlAudio.SelectedIndex > 0)
     {
         MediaPlayer1.DVD_Select_AudioStream(cbDVDControlAudio.SelectedIndex);
     }
 }
Exemple #8
0
 private void Form1_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (MediaPlayer1.Status != VFMediaPlayerStatus.Free)
     {
         MediaPlayer1.Stop();
     }
 }
Exemple #9
0
 private void tbTimeline_Scroll(object sender, EventArgs e)
 {
     if (Convert.ToInt32(timer1.Tag) == 0)
     {
         MediaPlayer1.Position_Set_Time(TimeSpan.FromSeconds(tbTimeline.Value));
     }
 }
Exemple #10
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            int      dur     = (int)MediaPlayer1.Duration_Time();
            TimeSpan spanDur = new TimeSpan(0, 0, 0, 0, dur);

            lbDuration.Text = FormatTime(spanDur);

            tbTimeline.Maximum = dur / 1000;

            TimeSpan spanPos;
            int      pos = (int)MediaPlayer1.Position_Get_Time();

            if (pos < dur)
            {
                spanPos          = new TimeSpan(0, 0, 0, 0, pos);
                tbTimeline.Value = pos / 1000;
            }
            else
            {
                spanPos          = new TimeSpan(0, 0, 0, 0, dur);
                tbTimeline.Value = dur / 1000;
            }

            lbPostion.Text = FormatTime(spanPos);
        }
        private async void btStart_Click(object sender, EventArgs e)
        {
            MediaPlayer1.FilenamesOrURL.Add(edFilename.Text);
            MediaPlayer1.Loop                 = cbLoop.Checked;
            MediaPlayer1.Audio_PlayAudio      = true;
            MediaPlayer1.Info_UseLibMediaInfo = true;
            MediaPlayer1.Audio_OutputDevice   = "Default DirectSound Device";
            MediaPlayer1.Source_Mode          = VFMediaPlayerSource.LAV;

            if (MediaPlayer1.Filter_Supported_EVR())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR;
            }
            else if (MediaPlayer1.Filter_Supported_VMR9())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9;
            }
            else
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer;
            }

            MediaPlayer1.MultiScreen_Enabled = true;
            MediaPlayer1.MultiScreen_Clear();
            MediaPlayer1.MultiScreen_AddScreen(form2.Screen.Handle, form2.Screen.Width, form2.Screen.Height);

            await MediaPlayer1.PlayAsync();

            // set audio volume for each stream
            MediaPlayer1.Audio_OutputDevice_Balance_Set(0, tbBalance1.Value);
            MediaPlayer1.Audio_OutputDevice_Volume_Set(0, tbVolume1.Value);

            timer1.Enabled = true;
        }
        private void btUpdateRect_Click(object sender, EventArgs e)
        {
            int index = lbSourceFiles.SelectedIndex;

            if (index >= 0)
            {
                int left   = Convert.ToInt32(edPIPFileLeft.Text);
                int top    = Convert.ToInt32(edPIPFileTop.Text);
                int width  = Convert.ToInt32(edPIPFileWidth.Text);
                int height = Convert.ToInt32(edPIPFileHeight.Text);
                _pipInfos[index].Rect = new Rectangle(left, top, width, height);

                _pipInfos[index].ZOrder = Convert.ToInt32(edZOrder.Text);
                _pipInfos[index].Alpha  = tbStreamTransparency.Value / 100.0f;

                if (left == 0 && top == 0 && width == 0 && height == 0)
                {
                    lbSourceFiles.Items[index] = $@"{_pipInfos[index].Filename} (entire screen)";
                }
                else
                {
                    lbSourceFiles.Items[index] = $@"{_pipInfos[index].Filename} ({left}.{top}px, width: {width}px, height: {height}px)";
                }

                MediaPlayer1.PIP_Sources_SetSourcePosition(index, _pipInfos[index].Rect, tbStreamTransparency.Value / 100.0f);
                MediaPlayer1.PIP_Sources_SetSourceOrder(index, _pipInfos[index].ZOrder);
            }
        }
Exemple #13
0
 private void tbTimeline_Scroll(object sender, EventArgs e)
 {
     if (Convert.ToInt32(timer1.Tag) == 0)
     {
         MediaPlayer1.Position_Set_Time(tbTimeline.Value * 1000);
     }
 }
Exemple #14
0
        private async void btStop_Click(object sender, EventArgs e)
        {
            await MediaPlayer1.StopAsync();

            timer1.Enabled   = false;
            tbTimeline.Value = 0;
        }
Exemple #15
0
        private async void btStart_Click(object sender, EventArgs e)
        {
            mmError.Clear();

            MediaPlayer1.FilenamesOrURL.Add(edFilename.Text);
            MediaPlayer1.Loop            = cbLoop.Checked;
            MediaPlayer1.Audio_PlayAudio = true;

            MediaPlayer1.Source_Mode = VFMediaPlayerSource.DVD_DS;

            // read DVD info
            cbDVDControlTitle.Items.Clear();
            cbDVDControlChapter.Items.Clear();
            cbDVDControlAudio.Items.Clear();
            cbDVDControlSubtitles.Items.Clear();

            MediaInfo.Filename = edFilename.Text;
            MediaInfo.ReadDVDInfo();

            for (int i = 0; i < MediaInfo.DVD_Disc_NumOfTitles; i++)
            {
                cbDVDControlTitle.Items.Add("Title " + (i + 1));
            }

            MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device";

            if (VideoCapture.Filter_Supported_EVR())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR;
            }
            else if (VideoCapture.Filter_Supported_VMR9())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9;
            }
            else
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer;
            }

            MediaPlayer1.Debug_Mode = cbDebugMode.Checked;

            await MediaPlayer1.PlayAsync();

            // DVD
            // select and play first title
            if (cbDVDControlTitle.Items.Count > 0)
            {
                cbDVDControlTitle.SelectedIndex = 0;
                cbDVDControlTitle_SelectedIndexChanged(null, null);
            }

            // show title menu
            MediaPlayer1.DVD_Menu_Show(VFDVDMenu.Title);

            MediaPlayer1.Audio_OutputDevice_Balance_Set(0, tbBalance1.Value);
            MediaPlayer1.Audio_OutputDevice_Volume_Set(0, tbVolume1.Value);

            timer1.Enabled = true;
        }
Exemple #16
0
        private void btStop_Click(object sender, EventArgs e)
        {
            MediaPlayer1.Stop();
            timer1.Enabled   = false;
            tbTimeline.Value = 0;

            form2.Screen.Invalidate();
        }
Exemple #17
0
        private void btStop_Click(object sender, EventArgs e)
        {
            VideoCapture1.Stop();
            MediaPlayer1.Stop();

            FaceDetectionRemove();
            CarCounterRemove();
            PedestrianDetectionRemove();
        }
Exemple #18
0
        private void cbDVDControlTitle_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbDVDControlTitle.SelectedIndex != -1)
            {
                // fill info
                cbDVDControlAudio.Items.Clear();
                cbDVDControlSubtitles.Items.Clear();
                cbDVDControlChapter.Items.Clear();

                MediaInfo.DVD_Fill_Title_Info(cbDVDControlTitle.SelectedIndex);

                for (int i = 0; i < MediaInfo.DVD_Title_NumberOfChapters; i++)
                {
                    cbDVDControlChapter.Items.Add("Chapter " + Convert.ToString(i + 1));
                }

                if (cbDVDControlChapter.Items.Count > 0)
                {
                    cbDVDControlChapter.SelectedIndex = 0;
                }

                for (int i = 0; i < MediaInfo.DVD_Title_MainAttributes_NumberOfAudioStreams; i++)
                {
                    MediaInfo.DVD_Fill_Title_Audio_Info(cbDVDControlTitle.SelectedIndex, i);
                    string s = MediaInfo.DVD_Title_MainAttributes_AudioAttributes_AudioFormat;

                    s = s + " - ";
                    s = s + MediaInfo.DVD_Title_MainAttributes_AudioAttributes_NumberOfChannels + "ch" + " - ";
                    s = s + MediaInfo.DVD_Title_MainAttributes_AudioAttributes_LanguageS;

                    cbDVDControlAudio.Items.Add(s);
                }

                if (cbDVDControlAudio.Items.Count > 0)
                {
                    cbDVDControlAudio.SelectedIndex = 0;
                }

                cbDVDControlSubtitles.Items.Add("Disabled");
                for (int i = 0; i < MediaInfo.DVD_Title_MainAttributes_NumberOfSubpictureStreams; i++)
                {
                    MediaInfo.DVD_Fill_Title_Subpicture_Info(cbDVDControlTitle.SelectedIndex, i);
                    cbDVDControlSubtitles.Items.Add(MediaInfo.DVD_Title_MainAttributes_SubpictureAttributes_LanguageS);
                }

                cbDVDControlSubtitles.SelectedIndex = 0;

                // if (nil we just enumerate titles and chapters
                if (sender != null)
                {
                    // play title
                    MediaPlayer1.DVD_Title_Play(cbDVDControlTitle.SelectedIndex);
                    tbTimeline.Maximum = (int)MediaPlayer1.DVD_Title_GetDuration().TotalSeconds;
                }
            }
        }
Exemple #19
0
        public async void Play2_ClickAsync()
        {
            //https://github.com/amamiya/SYEngine/blob/master/!GUIDE/Segment/Segment.md 播放分段的 FLV\MP4



            //载入播放引擎
            SYEngine.Core.Initialize();
            //所有URL地址列表
            var url_list = new List <String>();//实例化新的 SYEngine.Playlist 对象;

            //url_list.Add("http://data.vod.itc.cn/?rb=1&key=jbZhEJhlqlUN-Wj_HEI8BjaVqKNFvDrn&prod=flash&pt=1&new=/51/116/UdKGIuSjQIO8dynrybyS1E.mp4");


            url_list.Add("http://player.acfun.cn/route_mp4?dt=0&uid=0&timestamp=1540371865&fid=040040020400005BCEED7100010002570000000000-0000-0000-0231-311400000000.mp4&ns=video.acfun.cn&ran=0&vid=5bceeca80cf2c691e00a68fb&customer_id=5859fdaee4b0eaf5dd325b91&sign=ct5bd035990cf22adc685b3ddc");
            //拒绝访问了 问题应该出在请求头


            //构造SYEngine的PlayList。
            var play_list = new SYEngine.Playlist(SYEngine.PlaylistTypes.NetworkHttp);//网络类型

            foreach (var url in url_list)
            {
                //获取每个URL文件的媒体时长和文件大小。
                //如果你的App能通过其他方法提供这些信息,也可以不执行这样的操作。
                // var file = new SYEngine.MediaInformation();
                //await file.OpenAsync(new Uri(url));//失败会有异常,这里忽略。


                play_list.Append(url, 0, 0); // 添加到PlayList
                //也可一〉play_ list. Append(url, D, 0), 然后把cfgs的DetectDur ationF orParts设置为true。
                //播放引擎会自动连接所有 分段地址去获取文件大小和时长。
            }

            //设置网络参数。使用 SYEngine.PlaylistNetworkConfigs 结构体来设置网络参数。这个结构体的相关解释请拉到页面底部的 网络选项说明 来查看
            SYEngine.PlaylistNetworkConfigs cfgs = default(SYEngine.PlaylistNetworkConfigs);
            cfgs.HttpUserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36";

            cfgs.HttpReferer = string.Empty;

            cfgs.HttpCookie = string.Empty;



            cfgs.UniqueId               = string.Empty; //如果要使用动态更新URL,这个不能是Empty,这里不使用。
            cfgs.DownloadRetryOnFail    = true;         //启用断线重连,建议打开。
            cfgs.DetectDurationForParts = true;
            play_list.NetworkConfigs    = cfgs;



            //设置到MedisElement。
            MediaPlayer1.Source = await play_list.SaveAndGetFileUriAsync();// 最后,使用 MediaElement 的 Play 方法来播放,或者设置 AutoPlay 属性为true

            MediaPlayer1.Play();
        }
        private async void btStop_Click(object sender, EventArgs e)
        {
            await VideoCapture1.StopAsync();

            await MediaPlayer1.StopAsync();

            FaceDetectionRemove();
            CarCounterRemove();
            PedestrianDetectionRemove();
        }
        private void btStop_Click(object sender, EventArgs e)
        {
            timer1.Stop();

            MediaPlayer1.Stop();

            _pipInfos.Clear();
            MediaPlayer1.PIP_Sources_Clear();
            lbSourceFiles.Items.Clear();
        }
Exemple #22
0
        private void cbDVDControlSubtitles_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbDVDControlSubtitles.SelectedIndex > 0)
            {
                MediaPlayer1.DVD_Select_SubpictureStream(cbDVDControlSubtitles.SelectedIndex - 1);
            }

            // 0 - x - subtitles
            // -1 - disable subtitles
        }
Exemple #23
0
        private void BtReadFormats_Click(object sender, EventArgs e)
        {
            cbFormat.Items.Clear();
            _videoInfoList = MediaPlayer1.YouTube_GetURLInfo(edURL.Text);
            foreach (var info in _videoInfoList)
            {
                cbFormat.Items.Add(info.ToString());
            }

            cbFormat.SelectedIndex = 0;
        }
        private void ConfigureMediaPlayer()
        {
            MediaPlayer1.Debug_Mode = cbDebugMode.Checked;
            MediaPlayer1.Debug_Dir  = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\VisioForge\\";

            MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV;
            MediaPlayer1.FilenamesOrURL.Clear();
            MediaPlayer1.FilenamesOrURL.Add(edFilename.Text);

            MediaPlayer1.Video_Renderer_SetAuto();
        }
Exemple #25
0
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }

            MediaPlayer1?.Dispose();
            MediaPlayer1 = null;

            base.Dispose(disposing);
        }
Exemple #26
0
        private void btStart_Click(object sender, EventArgs e)
        {
            mmError.Clear();

            switch (cbSourceMode.SelectedIndex)
            {
            case 0:
                MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV;
                break;

            case 1:
                MediaPlayer1.Source_Mode = VFMediaPlayerSource.File_DS;
                break;

            case 2:
                MediaPlayer1.Source_Mode = VFMediaPlayerSource.File_FFMPEG;
                break;

            case 3:
                MediaPlayer1.Source_Mode = VFMediaPlayerSource.File_VLC;
                break;
            }

            MediaPlayer1.FilenamesOrURL.Add(edFilename.Text);
            MediaPlayer1.Loop            = cbLoop.Checked;
            MediaPlayer1.Audio_PlayAudio = true;

            MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device";

            if (MediaPlayer1.Filter_Supported_EVR())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR;
            }
            else if (MediaPlayer1.Filter_Supported_VMR9())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9;
            }
            else
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer;
            }

            MediaPlayer1.Debug_Mode = cbDebugMode.Checked;

            MediaPlayer1.Play();

            // set audio volume for each stream
            MediaPlayer1.Audio_OutputDevice_Balance_Set(0, tbBalance1.Value);
            MediaPlayer1.Audio_OutputDevice_Volume_Set(0, tbVolume1.Value);

            timer1.Enabled = true;
        }
Exemple #27
0
        private void btStart_Click(object sender, EventArgs e)
        {
            if (rbSTreamTypeFile.Checked)
            {
                FileStream     fs     = new FileStream(edFilename.Text, FileMode.Open);
                ManagedIStream stream = new ManagedIStream(fs);

                // specifing settings
                // MediaPlayer1.Source_Mode = VFMediaPlayerSource.Memory_DS;
                MediaPlayer1.Source_Stream      = stream;
                MediaPlayer1.Source_Stream_Size = fs.Length;
            }
            else
            {
                byte[]       source = File.ReadAllBytes(edFilename.Text);
                MemoryStream ms     = new MemoryStream(source);

                ManagedIStream stream = new ManagedIStream(ms);

                // specifing settings
                // MediaPlayer1.Source_Mode = VFMediaPlayerSource.Memory_DS;
                MediaPlayer1.Source_Stream      = stream;
                MediaPlayer1.Source_Stream_Size = ms.Length;
            }

            // video and audio present in file. tune this settings to play audio files or video files without audio
            MediaPlayer1.Source_Stream_VideoPresent = true;
            MediaPlayer1.Source_Stream_AudioPresent = true;

            MediaPlayer1.Source_Mode = VFMediaPlayerSource.Memory_DS;

            MediaPlayer1.Audio_OutputDevice = "Default DirectSound Device";

            if (VideoCapture.Filter_Supported_EVR())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.EVR;
            }
            else if (VideoCapture.Filter_Supported_VMR9())
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VMR9;
            }
            else
            {
                MediaPlayer1.Video_Renderer.Video_Renderer = VFVideoRenderer.VideoRenderer;
            }

            MediaPlayer1.Debug_Mode = cbDebugMode.Checked;
            MediaPlayer1.Play();

            tbTimeline.Maximum = (int)(MediaPlayer1.Duration_Time() / 1000);
            timer1.Enabled     = true;
        }
Exemple #28
0
        public void Goin()
        {
            BackExit.setBack(Goin);
            sNum = 0;
            fNum = 0;
            CD.setMainUI(this);
            time.start();
            successNum.Text = "0";
            failedNum.Text  = "0";
            status.Text     = "空闲";

            hasPath1 = false;
            hasPath2 = false;
            hasPath3 = false;
            string path1 = CD.getBasePath() + "Media\\openBox.mp4";
            string path2 = CD.getBasePath() + "Media\\addCar.mp4";
            string path3 = CD.getBasePath() + "Media\\closeBox.mp4";

            if (File.Exists(path1))
            {
                MediaPlayer1.Source = new Uri(path1);
                MediaPlayer1.Play();
                hasPath1 = true;
            }
            else
            {
                MessageBox.Show("文件丢失:" + path1);
            }

            if (File.Exists(path2))
            {
                MediaPlayer2.Source = new Uri(path2);
                MediaPlayer2.Play();
                hasPath2 = true;
            }
            else
            {
                MessageBox.Show("文件丢失:" + path2);
            }

            if (File.Exists(path3))
            {
                MediaPlayer3.Source = new Uri(path3);
                MediaPlayer3.Play();
                hasPath3 = true;
            }
            else
            {
                MessageBox.Show("文件丢失:" + path3);
            }
        }
Exemple #29
0
        private async void BtStart_Click(object sender, EventArgs e)
        {
            if (_videoInfoList.Count == 0)
            {
                MessageBox.Show("Please read formats first.");
                return;
            }

            MediaPlayer1.Source_Mode = VFMediaPlayerSource.LAV;
            MediaPlayer1.FilenamesOrURL.Clear();
            MediaPlayer1.FilenamesOrURL.Add(_videoInfoList[cbFormat.SelectedIndex].Uri);

            await MediaPlayer1.PlayAsync();
        }
        private void VideoCapture1_OnTimeshiftFileCreated(object sender, TimeshiftFileEventArgs e)
        {
            MediaPlayer1.Debug_Mode = true;
            MediaPlayer1.Debug_Dir  = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\VisioForge\\";

            string filename = e.Filename;

            MediaPlayer1.FilenamesOrURL.Clear();
            MediaPlayer1.FilenamesOrURL.Add(filename);

            MediaPlayer1.Source_Mode = VFMediaPlayerSource.Timeshift;

            MediaPlayer1.Play();
        }