예제 #1
0
파일: VLCPlayer.cs 프로젝트: Joris9527/Rtmp
        /// <summary>
        /// 抓图(支持多种格式)
        /// </summary>
        /// <param name="savePath">完整路径(bmp,png,jpg)</param>
        /// <param name="width">抓图宽度</param>
        /// <param name="height">抓图高度</param>
        /// <returns></returns>
        public int SnapShot(string savePath, uint width = 0, uint height = 0)
        {
            int result = -1;

            if (libvlc_media_player_ != IntPtr.Zero)
            {
                IntPtr pathPtr = VLCUtil.StringToPtr(savePath);
                result = VLCAPI.libvlc_video_take_snapshot(libvlc_media_player_, 0, pathPtr, width, height);
                Marshal.FreeHGlobal(pathPtr);
            }
            return(result);
        }
예제 #2
0
파일: VLCPlayer.cs 프로젝트: Joris9527/Rtmp
        /// <summary>
        /// 播放
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="handle"></param>
        /// <returns> true 成功 ,false 失败</returns>
        public bool Play(string filePath, IntPtr handle)
        {
            bool flag = false;

            if (libvlc_instance_ == IntPtr.Zero || libvlc_media_player_ == IntPtr.Zero)
            {
                return(flag);
            }
            this.SetRenderWindow((int)handle);

            IntPtr pathPtr = VLCUtil.StringToPtr(filePath);

            IntPtr libvlc_media;

            if (UrlDiscern(filePath))
            {
                //从url取视频
                libvlc_media = VLCAPI.libvlc_media_new_location(libvlc_instance_, pathPtr);
            }
            else
            {
                //从本地取视频
                libvlc_media = VLCAPI.libvlc_media_new_path(libvlc_instance_, pathPtr);
            }

            Marshal.FreeHGlobal(pathPtr);
            if (libvlc_media != IntPtr.Zero)
            {
                //取时长前必须调用
                //VLCAPI.libvlc_media_parse(libvlc_media);
                //duration_ = VLCAPI.libvlc_media_get_duration(libvlc_media) / 1000.0;

                VLCAPI.libvlc_media_player_set_media(libvlc_media_player_, libvlc_media);

                VLCAPI.libvlc_media_release(libvlc_media);

                VLCAPI.libvlc_media_player_play(libvlc_media_player_);

                flag = true;
            }

            return(flag);
        }