c#的一个视频播放库的封装-VLC.DotNet

    VLC的强大是众所周知的,如果你不知道,那你现在就知道了。

FFMPEG和VLC的关系:VLC调用了FFMPEG的库;
FFMPEG和libav的关系:libav是FFMPEG的开发人员中独立出来一部分后创建的一个新的工程。

    以上都是段子,没有深入研究。一般做视频和直播都不好绕过去的几个库。
    这里介绍一下VLC.DotNet类库的使用。nuget里有这个,一搜就可以了 ,关键字VLC.DotNet。
    1)Vlc.DotNet.Forms :是包含winform界面控件的库,使用的时候需要加入到工具箱,在拖拽到界面;是对VLC.DotNet.Core的再次封装。
    2)Vlc.DotNet.Wpf : 包括wpf的,在hood方式下是使用WinForm控件;
    3)Vlc.DotNet.Core : 基础依赖包,如果是转换、编解码、做服务不需要界面的,可以考虑用这个来实现。
隐藏一个坑:

需要nuget安装:
        VideoLAN.LibVLC.Windows 这个还没有正式发布,所以需要勾选“预览”。

    使用上有一个需要注意的,就是需要指定一下libvlc库的位置,否则会报错。虽然装了VideoLAN.LibVLC.Windows包,但这里不会自动配置。控件初始化是会触发VlcLibDirectoryNeeded事件,在这个事件中配置libvlc的地址,如果,你不安装上面的VideoLAN.LibVLC.Windows包,可以制定另外的地址。

private void vlcControl1_VlcLibDirectoryNeeded(object sender, Vlc.DotNet.Forms.VlcLibDirectoryNeededEventArgs e)
{
var currentAssembly = Assembly.GetEntryAssembly();
var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
// Default installation path of VideoLAN.LibVLC.Windows
e.VlcLibDirectory = new DirectoryInfo(Path.Combine(currentDirectory, "libvlc", IntPtr.Size == 4 ? "win-x86" : "win-x64"));
}

    调用play方法播放视频流或者视频流文件。调用stop方法停止播放。pause,暂停播放。

你可能感兴趣的:(c#的一个视频播放库的封装-VLC.DotNet)