c# winform vlcPlayer播放器

本文介绍了如何在C# WinForm应用中集成VLCPlayer,包括获取必要的dll文件、创建播放器对象以及控制播放、音量和时间的方法。
摘要由CSDN通过智能技术生成

vlcPlayer是一款免费开源的播放器项目,可以播放几乎所有的视频格式。

第一步:获取dll

安装vlcplayer视频播放器,在安装目录下面获取所需的dll。

dll文件夹:plugins

还有2个dll:libvlc.dll,libvlccore.dll

第二步:获取播放器对象基类VlcPlayerBase

using System;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;

namespace VlcPlayer
{
    public class VlcPlayerBase
    {
        private IntPtr libvlc_instance_;
        private IntPtr libvlc_media_player_;

        /// <summary>
        /// 视频时长
        /// </summary>
        private double duration_;

        /// <summary>
        /// VLC 播放器。
        /// </summary>
        /// <param name="pluginPath"></param>
        public VlcPlayerBase(string pluginPath)
        {
            //string pluginPath = Environment.CurrentDirectory + "\\vlc\\plugins\\";  //插件目录
            string plugin_arg = "--plugin-path=" + pluginPath;
            string[] arguments = { "-I", "dummy", "--ignore-config", "--no-video-title", plugin_arg };
            libvlc_instance_ = LibVlcAPI.libvlc_new(arguments);

            libvlc_media_player_ = LibVlcAPI.libvlc_media_player_new(libvlc_instance_);  //创建 libvlc_media_player 播放核心
        }

        /// <summary>
        /// 设置播放容器
        /// </summary>
        /// <param name="wndHandle">播放容器句柄</param>
        public void SetRenderWindow(int wndHandle)
        {
            if (libvlc_instance_ != IntPtr.Zero && wndHandle != 0)
            {
                LibVlcAPI.libvlc_media_player_set_hwnd(libvlc_media_player_, wndHandle);  //设置播放容器
            }
        }
        
        /// <summary>
        /// 播放指定媒体文件
        /// </summary>
        /// <param name="filePath"></param>
        public void LoadFile(string filePath)
        {
            IntPtr libvlc_media = LibVlcAPI.libvlc_media_new_path(libvlc_instance_, filePath);  //创建 libvlc_media_player 播放核心
            if (libvlc_media != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_parse(libvlc_media);
                duration_ = LibVlcAPI.libvlc_media_get_duration(libvlc_media) / 1000.0;  //获取视频时长

                LibVlcAPI.libvlc_media_player_set_media(libvlc_media_player_, libvlc_media);  //将视频绑定到播放器去
                LibVlcAPI.libvlc_media_release(libvlc_media);

                //LibVlcAPI.libvlc_media_player_play(libvlc_media_player_);  //播放
            }
        }

        /// <summary>
        /// 播放
        /// </summary>
        public void Play()
        {
            if (libvlc_media_player_ != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_player_play(libvlc_media_player_);
            }
        }

        /// <summary>
        /// 暂停播放
        /// </summary>
        public void Pause()
        {
            if (libvlc_media_player_ != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_player_pause(libvlc_media_player_);
            }
        }

        /// <summary>
        /// 停止播放
        /// </summary>
        public void Stop()
        {
            if (libvlc_media_player_ != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_player_stop(libvlc_media_player_);
            }
        }

        public void Release()
        {
            if (libvlc_media_player_ != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_release(libvlc_media_player_);
            }
        }
        
        /// <summary>
        /// 获取播放时间进度
        /// </summary>
        /// <returns></returns>
        public double GetPlayTime()
        {
            return LibVlcAPI.libvlc_media_player_get_time(libvlc_media_player_) / 1000.0;
        }

        /// <summary>
        /// 设置播放时间
        ///<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值