/// <summary> /// 获取已经显示的图片数 /// </summary> /// <param name="libvlc_media_player"></param> /// <returns></returns> private int GetDisplayedPictures(libvlc_media_player_t libvlc_media_player) { libvlc_media_t media = IntPtr.Zero; libvlc_media_stats_t media_stats = new libvlc_media_stats_t(); try { if (libvlc_media_player == IntPtr.Zero || libvlc_media_player == null) { return(0); } media = SafeNativeMethods.libvlc_media_player_get_media(libvlc_media_player); if (media == IntPtr.Zero || media == null) { return(0); } if (1 == SafeNativeMethods.libvlc_media_get_stats(media, ref media_stats)) { return(media_stats.i_displayed_pictures); } else { return(0); } } catch (Exception) { return(0); } }
/// <summary> /// 获取信息 /// </summary> /// <param name="libvlc_media_player"></param> /// <returns></returns> private bool GetMedia(libvlc_media_player_t libvlc_media_player) { libvlc_media_t media = IntPtr.Zero; try { if (libvlc_media_player == IntPtr.Zero || libvlc_media_player == null) { return(false); } media = SafeNativeMethods.libvlc_media_player_get_media(libvlc_media_player); if (media == IntPtr.Zero || media == null) { return(false); } else { return(true); } } catch (Exception) { return(false); } }
/// <summary> /// 播放本地视频 /// </summary> /// <param name="libvlc_instance"></param> /// <param name="libvlc_media_player"></param> /// <param name="url"></param> /// <returns></returns> private bool Local_Media_Play(libvlc_instance_t libvlc_instance, libvlc_media_player_t libvlc_media_player, string url) { IntPtr pMrl = IntPtr.Zero; libvlc_media_t libvlc_media = IntPtr.Zero; try { if (url == null || libvlc_instance == IntPtr.Zero || libvlc_instance == null || libvlc_media_player == IntPtr.Zero || libvlc_media_player == null) { return(false); } pMrl = StrToIntPtr(url); if (pMrl == null || pMrl == IntPtr.Zero) { return(false); } //播放本地视频 libvlc_media = SafeNativeMethods.libvlc_media_new_path(libvlc_instance, pMrl); if (libvlc_media == null || libvlc_media == IntPtr.Zero) { return(false); } //将Media绑定到播放器上 SafeNativeMethods.libvlc_media_player_set_media(libvlc_media_player, libvlc_media); //释放libvlc_media资源 SafeNativeMethods.libvlc_media_release(libvlc_media); libvlc_media = IntPtr.Zero; if (0 != SafeNativeMethods.libvlc_media_player_play(libvlc_media_player)) { return(false); } //休眠指定时间 Thread.Sleep(500); return(true); } catch (Exception) { //释放libvlc_media资源 if (libvlc_media != IntPtr.Zero) { SafeNativeMethods.libvlc_media_release(libvlc_media); } libvlc_media = IntPtr.Zero; return(false); } }
private bool NetWork_Media_Play(libvlc_instance_t libvlc_instance, libvlc_media_player_t libvlc_media_player, string url) { IntPtr pMrl = IntPtr.Zero; libvlc_media_t libvlc_media = IntPtr.Zero; try { if (url == null || libvlc_instance == IntPtr.Zero || libvlc_instance == null || libvlc_media_player == IntPtr.Zero || libvlc_media_player == null) { return(false); } pMrl = StrToIntPtr(url); if (pMrl == null || pMrl == IntPtr.Zero) { return(false); } libvlc_media = SafeNativeMethods.libvlc_media_new_location(libvlc_instance, pMrl); if (libvlc_media == null || libvlc_media == IntPtr.Zero) { return(false); } SafeNativeMethods.libvlc_media_player_set_media(libvlc_media_player, libvlc_media); SafeNativeMethods.libvlc_media_release(libvlc_media); libvlc_media = IntPtr.Zero; if (0 != SafeNativeMethods.libvlc_media_player_play(libvlc_media_player)) { return(false); } Thread.Sleep(500); return(true); } catch (Exception) { if (libvlc_media != IntPtr.Zero) { SafeNativeMethods.libvlc_media_release(libvlc_media); } libvlc_media = IntPtr.Zero; return(false); } }
/// <summary> /// 录制网络媒体 /// </summary> /// <param name="libvlc_instance">VLC 全局变量</param> /// <param name="url">网络视频URL,支持http、rtp、udp等格式的URL播放</param> /// <returns></returns> public bool NetWork_Media_Save(libvlc_instance_t libvlc_instance, string url) { IntPtr pMrl = IntPtr.Zero; libvlc_media_t libvlc_media = IntPtr.Zero; try { if (url == null || libvlc_instance == IntPtr.Zero || libvlc_instance == null) { return(false); } pMrl = StrToIntPtr(url); if (pMrl == null || pMrl == IntPtr.Zero) { return(false); } //播放网络文件 libvlc_media = SafeNativeMethods.libvlc_media_new_location(libvlc_instance, pMrl); if (libvlc_media == null || libvlc_media == IntPtr.Zero) { return(false); } //释放libvlc_media资源 //SafeNativeMethods.libvlc_media_release(libvlc_media); //libvlc_media = IntPtr.Zero; //休眠指定时间 //Thread.Sleep(200); return(true); } catch (Exception) { //释放libvlc_media资源 if (libvlc_media != IntPtr.Zero) { SafeNativeMethods.libvlc_media_release(libvlc_media); } libvlc_media = IntPtr.Zero; return(false); } }
internal static extern int libvlc_media_get_stats(libvlc_media_t libvlc_media, ref libvlc_media_stats_t lib_vlc_media_stats);
internal static extern Int64 libvlc_media_get_duration(libvlc_media_t libvlc_media);
internal static extern void libvlc_media_parse(libvlc_media_t libvlc_media);
internal static extern void libvlc_media_player_set_media(libvlc_media_player_t libvlc_media_player, libvlc_media_t libvlc_media);
internal static extern libvlc_media_player_t libvlc_media_player_new_from_media(libvlc_media_t libvlc_media);
internal static extern void libvlc_media_release(libvlc_media_t libvlc_media_inst);
internal static extern void libvlc_media_add_option(libvlc_media_t p_md, String psz_option);