C#实现视频播放器(Vlc.DotNet)

在介绍怎么用C#实现播放器之前,先说明下为什么选择C#。随着.NET Core的发布,使得.Net支持跨平台,并且支持独立打包的方式发布,使得使用C#开发不再需要依赖.Net环境。

使用C#实现播放器,有以下几种方式:

1、使用MediaPlayer ActiveX控件;

2、使用VLC ActiveX控件

3、使用LIB VLC库

4、使用FFMPEG库

第1、2种,都一定依赖客户端环境。如果客户端较少,可以人工维护的话,可以考虑。

第4种,使用ffmpeg,就拥有了更加底层的api了,此时可以实现更加强大的功能。并且它是跨平台的,对于移动平台的音视频开发也是非常有帮助的。

今天我们就是采用第3种方式,它不依赖客户端环境,在Github上也有比较完善的对它的封装,具体请看项目Vlc.DotNet。采用这种方式可以实现一些底层的控制,当然了相对于ffmpeg,会少一些。

 

一、什么是Vlc.DotNet

 

我们从NuGet可以看到,它包含了这5个类库:

Vlc.DotNet.Core

Vlc.DotNet.Core.Interops

Vlc.DotNet.Wpf

Vlc.DotNet.Forms

VideoLAN.LibVLC.Windows

1)Vlc.DotNet.Forms :是包含winform界面控件的库,使用的时候需要加入到工具箱,再拖拽到界面;是对VLC.DotNet.Core的再次封装。

2)Vlc.DotNet.Wpf : 包括wpf的,在hood方式下是使用WinForm控件。

3)Vlc.DotNet.Core 、Vlc.DotNet.Core.Interops : 基础依赖包,如果是转换、编解码、做服务不需要界面的,可以考虑用这个来实现。

4)VideoLAN.LibVLC.Windows:应用于安装libvlc库,分为win-x64和win-x86。

今天我们是开发界面应用,使用到是Vlc.DotNet.Forms和VideoLAN.LibVLC.Windows,我们只要安装这两个就可以。

 

二、控件使用

 

我们安装相应的类库后,在工具箱就可以看到相应的控件,只要把它拖进相应的界面就可以。

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

 

 

三、视频播放

//网络媒体播放
var videoUri =new Uri("udp://@:ip:port");
vlcControl.Play(videoUri );

//本地文件播放
vlcControl.Play(new FileInfo("本地视频路径"));

 

四、实际效果

最后我们一起来看看最终实现的效果,以下视频是我开发的视频、图片去水印的工具。

视频、图片去水印

 转自:https://zhuanlan.zhihu.com/p/204998521?utm_source=com.microsoft.todos

原文地址:https://www.cnblogs.com/javalinux/p/14544306.html