VLC基础用法

DinS          Written on 2018/4/1

本文介绍VLC基本使用方法,希望读者已经把环境搭建好了。

以下代码基本上就是https://wiki.videolan.org/LibVLC_Tutorial/的抄写外加少许点评,更重要的是如何处理3.0在VS下的情况。

大图点这里

整体的代码思路是很清晰的,建立一个VLC实例作为环境,然后指定一个媒体,根据媒体创建播放器,然后播放。其他要注意的内容都写在注释里了。如果不显式提供播放窗口,vlc会自己创建一个窗口用于播放。
如果此时编译,会报错:

这是为什么呢?去头文件看看:

这个东西没有声明过。如果去查所有.h文件,都找不到。
但是神奇的是如果往上看看,会发现这么一个函数:

这里的libvlc_meda_open_cb同样也没有声明过,但是可以通过编译,据说跟那个ssize_t有关系。如果仔细看注释,会发现这么一行:

返回值是一个数值,于是我们把所有.h文件中出现的ssize_t替换为int,然后编译:

成功了?!
原理是什么我不知道,会不会影响使用呢?不清楚。
如果认为这样操作很危险,那么使用2.x版本,在2.x版本里没有这几个typedef,自然就不存在编译不过的问题。

在运行之前,要把压缩包里的plugin目录和核心dll放到exe同级,这样才能找到vlc的运行时库:

然后运行:

视频直接显示在桌面上了,成功!
控制台输出了几个error,不过看样子跟Dx11有关,不影响播放。
至此VLC简单使用介绍完毕。实际上VLC能够对视频进行许多处理,不过这不是我使用VLC的初衷,我只希望播放视频即可。其他用法可以去官网查询。

下面介绍一个看上去是嵌入式视频的方法,见《如何实现一个看上去是嵌入式视频的功能》。