public void Play(string Filename) { if (InvokeRequired) { Invoke(new PlayDelegate(Play), Filename); } else { _filename = Filename; m_media = m_factory.CreateMedia <IMedia>(Filename); m_media.Events.DurationChanged += new EventHandler <MediaDurationChange>(Events_DurationChanged); m_media.Events.StateChanged += new EventHandler <MediaStateChange>(Events_StateChanged); m_media.Events.ParsedChanged += new EventHandler <MediaParseChange>(Events_ParsedChanged); m_player.Open(m_media); m_media.Parse(true); m_player.Play(); _needsSize = true; string[] parts = Filename.Split('\\'); string fn = parts[parts.Length - 1]; FilesFile ff = ((MainForm)Owner).GetCameraWindow(ObjectID).FileList.FirstOrDefault(p => p.Filename.EndsWith(fn)); if (ff != null) { vNav.Render(ff); } } }
private void Button_Click(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); if (ofd.ShowDialog() == true) { isFromEvent = true; System.Windows.Forms.Application.DoEvents(); filenamef = ofd.FileName; m_media = m_factory.CreateMedia <IMediaFromFile>(filenamef); Thread t = new Thread(() => { if (m_player.CurrentMedia != null) { m_player.CurrentMedia.Dispose(); } //m_media.Events.DurationChanged += new EventHandler<MediaDurationChange>(Events_DurationChanged); //m_media.Events.StateChanged += new EventHandler<MediaStateChange>(Events_StateChanged); //m_media.Events.ParsedChanged += new EventHandler<MediaParseChange>(Events_ParsedChanged); //System.Windows.Forms.Application.DoEvents(); m_player.Open(m_media); //System.Windows.Forms.Application.DoEvents(); m_media.Parse(true); //System.Windows.Forms.Application.DoEvents(); m_player.Play(); }); t.Start(); //isFromEvent = false; } }
/// <summary> /// Play. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonPlay_Click(object sender, EventArgs e) { if (_player != null) { _disk.Play(); EnabledOnPlayControls(true); } }
void vNav_Seek(object sender, float percent) { if (!_mPlayer.IsPlaying) { if (_mPlayer.PlayerWillPlay) { _mPlayer.Play(); } else { Play(_filename, Text); } } _mPlayer.Position = percent / 100; }
public void Play(string RTSPstr) { try { _rtsp_str = RTSPstr; if (isInit == false) { Init_nVLC(); isInit = true; } DisposeMedia(); m_media = m_factory.CreateMedia <IMedia>(RTSPstr); m_media.Events.DurationChanged += new EventHandler <MediaDurationChange>(Events_DurationChanged); m_media.Events.StateChanged += new EventHandler <MediaStateChange>(Events_StateChanged); m_media.Events.ParsedChanged += new EventHandler <MediaParseChange>(Events_ParsedChanged); m_player.Open(m_media); m_media.Parse(true); m_player.Stop(); m_player.Play(); CheckConnectionTimer.Start(); } catch (Exception Err) { throw new Exception("Play Faile, Error: " + Err.StackTrace); } }
private void button3_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(textBox1.Text)) { m_media = m_factory.CreateMedia <IMedia>(textBox1.Text); m_media.Events.DurationChanged += new EventHandler <MediaDurationChange>(Events_DurationChanged); m_media.Events.StateChanged += new EventHandler <MediaStateChange>(Events_StateChanged); m_media.Events.ParsedChanged += new EventHandler <MediaParseChange>(Events_ParsedChanged); m_player.Open(m_media); m_media.Parse(true); m_player.Play(); } else { errorProvider1.SetError(textBox1, "Please select media path first !"); } }
public void Play() { if (IsPlaying) { return; } IsPlaying = true; mPlayer.Play(); }
public bool Start(string videoSrcUrl) { if (_bIsInitial) { return(true); } _bIsInitial = true; try { if (_vlcmedia != null) { _vlcmedia.Events.StateChanged -= Events_StateChanged; _vlcmedia.Events.DurationChanged -= Events_DurationChanged; _vlcmedia.Dispose(); } _vlcmedia = Vlcfactory.CreateMedia <IMedia>(videoSrcUrl); _vlcmedia.Events.StateChanged += Events_StateChanged; _vlcmedia.Events.DurationChanged += Events_DurationChanged; // 自定义显示 _memRender = _vlcplayer.CustomRenderer; _memRender.SetFormat(new BitmapFormat(704, 576, ChromaType.RV24)); _memRender.SetCallback(delegate(Bitmap frame) { if ((frame != null) && (ReceiveFrameEvent != null)) { if (_videoPlayState) { long currentDateTime = _currentTime; Image imgd = (Bitmap)frame.Clone(); FaceDetectInfo facedet = new FaceDetectInfo(imgd, currentDateTime); //ReceiveFrameEvent(facedet); Task.Factory.StartNew(() => ReceiveFrameEvent(facedet)); } frame.Dispose(); frame = null; } }); _vlcplayer.Open(_vlcmedia); _vlcplayer.Play(); _videoPlayState = true; return(true); } catch (Exception ex) { Log4NetHelper.Instance.Error("启动视频播放Capture方法出现错误:" + ex.Message); return(false); } }
private void Player_PlayControl_Button_Click(object sender, EventArgs e) { switch (((Button)sender).Text) { case "暫停播放": m_player.Pause(); ((Button)sender).Text = "繼續播放"; break; case "繼續播放": m_player.Play(); ((Button)sender).Text = "暫停播放"; break; } }
public Subframe(JsonObject paramSchedule) { InitializeComponent(); JsonObjectCollection col = (JsonObjectCollection)paramSchedule; frameInfoStrc frameInfo = new frameInfoStrc(); frameInfo.xPos = int.Parse(col["xPos"].GetValue().ToString()); frameInfo.yPos = int.Parse(col["yPos"].GetValue().ToString()); frameInfo.width = int.Parse(col["width"].GetValue().ToString()); frameInfo.height = int.Parse(col["height"].GetValue().ToString()); frameInfo.contentsFileName = (string)col["fileName"].GetValue(); frameInfo.mute = bool.Parse(col["mute"].GetValue().ToString()); if (frameInfo.width == 0) { this.WindowState = FormWindowState.Maximized; } else { this.Width = frameInfo.width; this.Height = frameInfo.height; } this.Location = new System.Drawing.Point(frameInfo.xPos, frameInfo.yPos); # region ==== Create Player ==== m_factory = new MediaPlayerFactory(true); m_player = m_factory.CreatePlayer<IDiskPlayer>(); m_player.AspectRatio = AspectRatioMode.Default; m_player.Mute = frameInfo.mute; m_player.WindowHandle = this.pnlPlayerBack.Handle; UISync.Init(this); #endregion ====================== #region ==== Contents play ==== FileInfo contentsFileInfo = new FileInfo(@frameInfo.contentsFileName); m_media = m_factory.CreateMedia<IMediaFromFile>(contentsFileInfo.FullName); m_player.Open(m_media); m_media.Parse(true); m_player.Play(); #endregion ===================== }
public PlayerForm(Form ParentForm, List <string> PlayerSongInfoList) { InitializeComponent(); this.Owner = ParentForm; SongId = PlayerSongInfoList[0]; SongLang = PlayerSongInfoList[1]; SongSinger = PlayerSongInfoList[2]; SongSongName = PlayerSongInfoList[3]; SongTrack = PlayerSongInfoList[4]; SongFilePath = PlayerSongInfoList[5]; dvRowIndex = PlayerSongInfoList[6]; UpdateDataGridView = PlayerSongInfoList[7]; this.Text = "【" + SongLang + "】" + SongSinger + " - " + SongSongName; m_factory = new MediaPlayerFactory(true); m_player = m_factory.CreatePlayer <IDiskPlayer>(); m_player.WindowHandle = Player_Panel.Handle; Player_ProgressTrackBar.ProgressBarValue = 0; Player_ProgressTrackBar.TrackBarValue = 0; m_media = m_factory.CreateMedia <IMediaFromFile>(SongFilePath); m_player.Open(m_media); m_media.Parse(true); m_player.Mute = true; m_player.Play(); Thread.Sleep(1000); bool WaitTrackInfo = false; while (!WaitTrackInfo) { if (m_player.AudioTrackCount > 1) { foreach (Declarations.TrackDescription TrackDesc in m_player.AudioTracksInfo) { if (TrackDesc.Id != -1) { WaitTrackInfo = true; } } } } List <int> TrackIdList = new List <int>(); foreach (Declarations.TrackDescription TrackDesc in m_player.AudioTracksInfo) { TrackIdList.Add(TrackDesc.Id); } if (TrackIdList.Count > 2) { switch (SongTrack) { case "1": if (m_player.AudioTrack != TrackIdList[1]) { m_player.AudioTrack = TrackIdList[1]; } break; case "2": if (m_player.AudioTrack != TrackIdList[2]) { m_player.AudioTrack = TrackIdList[2]; } break; } Player_CurrentChannelValue_Label.Text = (TrackIdList.IndexOf(m_player.AudioTrack) == Convert.ToInt32(SongTrack)) ? "伴唱" : "人聲"; } else { string ChannelValue = ""; switch (SongTrack) { case "1": if (m_player.Channel != AudioChannelType.Left) { m_player.Channel = AudioChannelType.Left; } ChannelValue = "1"; break; case "2": if (m_player.Channel != AudioChannelType.Right) { m_player.Channel = AudioChannelType.Right; } ChannelValue = "2"; break; } Player_CurrentChannelValue_Label.Text = (ChannelValue == SongTrack) ? "伴唱" : "人聲"; } m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged); m_player.Position = 0; m_player.Mute = false; timer.Tick += new EventHandler(timer_Tick); timer.Interval = 500; timer.Start(); }
private void media_action() { DataTable ds1 = new DataTable(); ds1 = DAL.Stream.FindCameras(); List <myObject> url_list = (from row in ds1.AsEnumerable() select new myObject { // add url here and to the database so it can be used with the PTZ stream = row.Field <string>("stream"), panel = row.Field <int>("panel"), parameters = row.Field <string>("parameters"), cam_url = row.Field <string>("cam_url") }).ToList(); string switchExpression = m_action.Text; switch (switchExpression) { case "record": m_player1.Stop(); m_player2.Stop(); m_player3.Stop(); m_player4.Stop(); string[] filename = new string[url_list.Count]; string[] output = new string[url_list.Count]; for (int i = 0; i < url_list.Count; i++) { filename[i] = String.Format("{0:yyyy-MM-dd-hh-mm-ss}_Camera" + (i + 1), DateTime.Now, Name); if (i < (url_list.Count - 1)) { // output[i] = @":sout=#duplicate{dst=file{dst=C:\Users\user1\Desktop\video\" + filename[i] + ".asf},dst=display} --udp-caching=750 --tcp-caching=750 --realrtsp-caching=750"; // --control netsync --netsync-master-ip 192.168.1.100 output[i] = @":sout=#duplicate{dst=file{dst=C:\Users\user1\Desktop\video\" + filename[i] + ".asf},dst=display} --control netsync --netsync-master-ip 192.168.1.100"; } else { // output[i] = @":sout=#duplicate{dst=file{dst=C:\Users\user1\Desktop\video\" + filename[i] + ".asf},dst=display} --udp-caching=750 --tcp-caching=750 --realrtsp-caching=750"; // --control netsync --netsync-master output[i] = @":sout=#duplicate{dst=file{dst=C:\Users\user1\Desktop\video\" + filename[i] + ".asf},dst=display} --control netsync --netsync-master"; } } /* * for (int i = 0; i < url_list.Count; i++) * { * filename[i] = String.Format("{0:yyyy-MM-dd-hh-mm-ss}_Camera" + (i + 1), DateTime.Now, Name); * * output[i] = @":sout=#duplicate{dst=file{dst=C:\Users\user1\Desktop\video\" + filename[i] + ".asf},dst=display} --udp-caching=750 --tcp-caching=750 --realrtsp-caching=750"; // --control netsync --netsync-master * * } */ for (int i = 0; i < url_list.Count; i++) { filename[i] = String.Format("{0:yyyy-MM-dd-hh-mm-ss}_Camera" + (i + 1), DateTime.Now, Name); output[i] = @":sout=#duplicate{dst=file{dst=C:\Users\user1\Desktop\video\" + filename[i] + ".asf},dst=display}"; } m_factory = new IMediaPlayerFactory[url_list.Count]; for (int i = 0; i < url_list.Count; i++) { m_factory[i] = new MediaPlayerFactory(true); m_media[i] = m_factory[i].CreateMedia <IMedia>(url_list[i].stream, output[i]); } break; case "view": /* * string[] output1 = new string[url_list.Count]; * * for (int i = 0; i < url_list.Count; i++) * { * output1[i] = @":sout=#display"; * } * * m_factory = new IMediaPlayerFactory[url_list.Count]; * * for (int i = 0; i < url_list.Count; i++) { * m_factory[i] = new MediaPlayerFactory(true); * m_media[i] = m_factory[i].CreateMedia<IMedia>(url_list[i].stream, output1[i]); * } */ string[] output1 = new string[url_list.Count]; for (int i = 0; i < url_list.Count; i++) { /* if (i < 1) * { * // output1[i] = @":sout=#display --rt-priority --use-stream-immediate"; * // --control netsync --netsync-master * output1[i] = @":sout=#display --rt-offset=-2000"; * } * if (i > 2) * { * * // output1[i] = @":sout=#display --rt-offset=-2000 --stream-filter timeshift"; * //--control netsync --netsync-master-ip 192.164.1.60 * output1[i] = @":sout=#display --rt-priority --use-stream-immediate"; * } * else * { * output1[i] = @":sout=#display"; // --control netsync --netsync-master-ip 192.164.1.60 * } */ } m_factory = new IMediaPlayerFactory[url_list.Count]; for (int i = 0; i < url_list.Count; i++) { m_factory[i] = new MediaPlayerFactory(true); m_media[i] = m_factory[i].CreateMedia <IMedia>(url_list[i].stream, output1[i]); } break; case "playback": //these are attempts to use video sync string output2 = @":sout=#display --control netsync --netsync-master-ip 192.164.1.60"; // string output3 = @":sout=#display --control netsync --netsync-master"; // // string output2 = @":sout=#display"; string common; string commonfilename; int place; int place2; // Begin building the common filename so that I can select all videos in a group. place2 = textBox1.Text.IndexOf(".asf"); place = textBox1.Text.LastIndexOf('\\'); common = textBox1.Text.Substring(0, (place)); commonfilename = textBox1.Text.Substring((place + 1), ((place2 - 2) - place)); string[] dirs = Directory.GetFiles(common); int t = 0; // m_factory = new IMediaPlayerFactory[4]; /* * foreach (string dir in dirs) * { * if (dir.Contains(commonfilename)) //contains(commonfilename) = true; * { // get rid of the url_list that came from copying this. Change it to an array of strings * * m_factory[t] = new MediaPlayerFactory(true); * if (t <= 2) * { * m_filemedia[t] = m_factory[t].CreateMedia<IMediaFromFile>(dir, output2); * } * else * { * m_filemedia[t] = m_factory[t].CreateMedia<IMediaFromFile>(dir, output3); * } * * t++; * } * * } */ foreach (string dir in dirs) { if (dir.Contains(commonfilename)) //contains(commonfilename) = true; { // get rid of the url_list that came from copying this. Change it to an array of strings m_factory[t] = new MediaPlayerFactory(true); if (t < 1) { m_filemedia[t] = m_factory[t].CreateMedia <IMediaFromFile>(dir, output2); } else { m_filemedia[t] = m_factory[t].CreateMedia <IMediaFromFile>(dir, output3); } t++; } } /* * foreach (string dir in dirs) * { * if (dir.Contains(commonfilename)) //contains(commonfilename) = true; * { // get rid of the url_list that came from copying this. Change it to an array of strings * * m_factory[t] = new MediaPlayerFactory(true); * * m_filemedia[t] = m_factory[t].CreateMedia<IMediaFromFile>(dir, output2); * * t++; * } * * } */ break; } if ((m_action.Text == "record") | (m_action.Text == "view")) { m_player1.Open(m_media[0]); m_player2.Open(m_media[1]); m_player3.Open(m_media[2]); m_player4.Open(m_media[3]); //m_player4.Pause(); //System.Threading.Thread.Sleep(1500); /* Add code here to get rid of these lists... * for (int i = 0; i < url_list.Count; i++) * { * * } */ m_media[0].Parse(true); m_media[1].Parse(true); m_media[2].Parse(true); m_media[3].Parse(true); m_player1.Play(); m_player2.Play(); m_player3.Play(); m_player4.Play(); m_player1.Pause(); //button2.PerformClick(); /* Doesn't work. Streams will pause for a second and then continue. * m_player1.Pause(); * m_player2.Pause(); * m_player3.Pause(); * m_player4.Pause(); */ // System.Threading.Thread.Sleep(1000); /* * DateTime Tthen = DateTime.Now; * do * { * Application.DoEvents(); * } while (Tthen.AddSeconds(3) > DateTime.Now); */ // m_player1.Play(); } else { //temporarily commenting out m_player5.Open(m_filemedia[0]); // if m_player6 not empty? m_player6.Open(m_filemedia[1]); m_player7.Open(m_filemedia[2]); m_player8.Open(m_filemedia[3]); /* Add code here to get rid of these lists... * for (int i = 0; i < url_list.Count; i++) * { * * } */ m_filemedia[0].Parse(true); m_filemedia[1].Parse(true); m_filemedia[2].Parse(true); m_filemedia[3].Parse(true); m_player5.Play(); m_player6.Play(); m_player7.Play(); m_player8.Play(); } }