コード例 #1
0
        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);
            }
        }
コード例 #2
0
        /// <summary>
        /// Closes the media player and releases all resources.
        /// </summary>
        public void CloseMedia()
        {
            if (_player != null)
            {
                // Close the media player.
                _disk.Stop();
                _disk.Dispose();
                _player.Dispose();
                _media.Dispose();
            }

            _player = null;
            _disk   = null;
            _media  = null;
        }
コード例 #3
0
        public void Stop()
        {
            if (mMedia == null)
            {
                return;
            }

            IsPlaying = false;
            mPlayer.Stop();
            mMedia.Dispose();
        }
コード例 #4
0
ファイル: PlayerForm.cs プロジェクト: zhyinty/CrazyKTVSongMgr
 private void PlayerForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     Task.Factory.StartNew(() => m_player.Stop());
     timer.Dispose();
     this.Owner.Show();
 }
コード例 #5
0
ファイル: PlayerVLC.cs プロジェクト: Sirendium/IQ-RVS
 private void button4_Click(object sender, EventArgs e)
 {
     _mPlayer.Stop();
 }
コード例 #6
0
ファイル: Form1.cs プロジェクト: programetica/ClinicAbierta
        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();
            }
        }
コード例 #7
0
 private void Button_Click_3(object sender, RoutedEventArgs e)
 {
     m_player.Stop();
 }