예제 #1
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;
        }
예제 #2
0
 protected override void Dispose(bool disposing)
 {
     if (m_videoPlayer != null)
     {
         m_videoPlayer.Dispose();
         m_videoPlayer = null;
     }
     LibVlcMethods.libvlc_media_list_player_release(m_hMediaListPlayer);
 }
예제 #3
0
 private void Player_FormClosing(object sender, FormClosingEventArgs e)
 {
     try { m_player.Stop(); } catch
     {
     }
     m_factory.Dispose();
     m_media.Dispose();
     m_player.Dispose();
 }
예제 #4
0
 private void Player_FormClosing(object sender, FormClosingEventArgs e)
 {
     try { _mPlayer.Stop(); } catch
     {
     }
     _mFactory.Dispose();
     _mMedia.Dispose();
     _mPlayer.Dispose();
 }
예제 #5
0
        public MediaListPlayer(IntPtr hMediaLib, IMediaList mediaList)
        {
            m_mediaList        = mediaList;
            m_hMediaListPlayer = LibVlcMethods.libvlc_media_list_player_new(hMediaLib);
            LibVlcMethods.libvlc_media_list_player_set_media_list(m_hMediaListPlayer, ((INativePointer)m_mediaList).Pointer);
            m_mediaList.Dispose();

            m_videoPlayer = new DiskPlayer(hMediaLib);
            LibVlcMethods.libvlc_media_list_player_set_media_player(m_hMediaListPlayer, ((INativePointer)m_videoPlayer).Pointer);
            m_videoPlayer.Dispose();
        }
예제 #6
0
        public MediaListPlayer(IntPtr hMediaLib, IMediaList mediaList)
        {
            m_mediaList = mediaList;
            m_hMediaListPlayer = LibVlcMethods.libvlc_media_list_player_new(hMediaLib);
            LibVlcMethods.libvlc_media_list_player_set_media_list(m_hMediaListPlayer, ((INativePointer)m_mediaList).Pointer);
            m_mediaList.Dispose();

            m_videoPlayer = new DiskPlayer(hMediaLib);
            LibVlcMethods.libvlc_media_list_player_set_media_player(m_hMediaListPlayer, ((INativePointer)m_videoPlayer).Pointer);
            m_videoPlayer.Dispose();
        }
        public void ReleasenVLC()
        {
            CheckConnectionTimer.Stop();

            DisposeMedia();

            if (m_player != null)
            {
                m_player.Events.PlayerPositionChanged -= Events_PlayerPositionChanged;
                m_player.Events.TimeChanged           -= Events_TimeChanged;
                m_player.Events.MediaEnded            -= Events_MediaEnded;
                m_player.Events.PlayerStopped         -= Events_PlayerStopped;
                m_player.Dispose();
            }
            if (m_factory != null)
            {
                m_factory.Dispose();
            }

            //GC.SuppressFinalize(this);
        }
예제 #8
0
 private void Player_FormClosing(object sender, FormClosingEventArgs e)
 {
     lock (_lock)
     {
         if (_mPlayer != null)
         {
             try
             {
                 _mPlayer.Stop();
             }
             catch
             {
             }
         }
         try
         {
             if (_mFactory != null)
             {
                 _mFactory.Dispose();
             }
             if (_mMedia != null)
             {
                 _mMedia.Dispose();
             }
             if (_mPlayer != null)
             {
                 _mPlayer.Dispose();
             }
         }
         catch
         {
         }
     }
     if (vNav != null)
     {
         vNav.ReleaseGraph();
     }
 }