天天看点

c#万能视频播放器(附代码)c#万能视频播放器

  本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的万能视频播放器,与大家分享一下。说它“万能”,当然是因为我们站在了vlc的肩膀上。

  vlc是一个强大而且开源的多媒体播放器,也可以说是一个多媒体平台。它支持非常广泛的媒体格式的本地播放,完全可以媲美mplayer,其对视频网络流的处理能力更是非常强悍。libvlc就是指的vlc的核心,它向外提供了一系列的接口,通过接口,来实现视频播放等复杂的功能。libvlc对外提供了c语言的接口,也有其他语言,包括.net的绑定,在其官网上就有,不过已经“年久失修”。我之前用Qt, MFC实现过基于libvlc的播放器,不过鉴于园子里c#开发人员较多,遂用c#封装了一下libvlc的API接口,并实现了一个视频播放器。

  先上鉴赏图,外表很简单,不过,外表不是重点:)

c#万能视频播放器(附代码)c#万能视频播放器

  

  首先是libvlc的一些导出函数,我在注释里对它们的功能都有说明

  要使用libvlc api进行播放,首先需要创建一个libvlc的实例,就是lbvlc_instance,之后所有的操作都是基于这个实例来完成。

  每一个播放窗口,对应一个libvlc_media_player,而每一个媒体文件,就是一个libvlc_media。所以,调用的步骤就是:

创建libvlc_instance

创建libvlc_media_player

开始播放时,创建libvlc_media,通知libvlc_media_player要播放的媒体文件,之后就可以释放libvlc_media了

操作libvlc_media_player,实现播放、暂停等功能

  下面对这些操作进行封装,以供上层使用。

  封装为VlcPlayer之后,调用就会变得非常简单。

首先确定好vlc的插件目录

在你的代码里创建VlcPlayer对象

调用SetRenderWindow,以设置视频显示的窗口,否则会变成一个独立的播放窗口

调用PlayFile,即可开始播放

c#万能视频播放器(附代码)c#万能视频播放器

  程序做好之后,需要带上libvlc.dll和libvlccore.dll,这两个是vlc的播放内核,因为vlc把编解码和格式解析的支持设计成了插件的形式,所以还必须要带上vlc的plugins目录里的插件。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

c#万能视频播放器(附代码)c#万能视频播放器

haibindev.cnblogs.com,合作请联系QQ。(转载请注明作者和出处)

继续阅读