1.前言
上一章我们讲到了C/C++开发聊天室,主要运用的知识点是TCP
网络编程。
而本章我将再讲解一个项目的开发实现,即我们常见的视频播放器,比如腾讯、爱奇艺、优酷等等,看看这些视频播放器都是怎么开发出来的?
放心,既然将本章放到了这个,那么就请相信你目前是有能力开发的。
本文的目的也并不是非要你能够自制播放器,只是为了给你拓宽知识面,比如,如何去使用别人写好的开源库?
毕竟只有站在巨人的肩膀上我们才能走的更远。
2.VLC库介绍
让我们现在立马自己开发一个能播放视频的功能库,那明显是不现实的,因为先不说目前视频格式就一大堆,比如mp4、AVI、WMV等等等等。
就算只开发一种格式播放的播放器,如mp4,那都不是一件简单的事情。
所以这种时候,肯定第一时间想到的就是使用现成的库,而VLC
就是本章选择的视频播放器库。
这个库经过近20年的发展,目前已经是相当强悍的地步了,基本支持播放我们常见的所有视频格式。
库文件的下载地址为:这里
我这里就直接选用最新版本的库文件好了,目前最新版本的是3.0.20
。
不过由于我们是开发windows
视频播放器,所以肯定选择上面的两个,但目前已经普遍是64位电脑了,所以我这里也就直接选用win64
的:
然后我们要下载的是这个包含库文件的压缩包:
解压后,可以看到目录:
首先就是将plugins
文件夹以及下方两个动态库libvlc.dll
、libvlccore.dll
复制到我们的项目文件夹中。
然后来到sdk
文件夹中,将头文件以及库文件目录也要复制到我们的项目中:
3.库函数详解及封装
3.1 初步使用
一般在正式使用一个库前,我们还需要先学会如何使用这个库里面包含的函数,最简单的方式当然是使用控制台了。
先随便建立一个测试用的控制台项目:
然后,将上面的文件复制到当前项目中:
接着,我们还要在项目里面添加它们:
#include"include/vlc/vlc.h"
#pragma comment(lib,"lib/libvlc.lib")
#pragma comment(lib,"lib/libvlccore.lib")
int main() {
}
但这样直接运行会报错,因为vlc.h
这个头文件里面包含了很多其它头文件,它是一个vlc
所有头文件的集合:
但其使用的路径都为:vlc/...
,所以就会找不到,因为按相对路径来看,这些头文件是在include
文件夹下的vlc
文件夹中,而且这些都是使用的尖括号<>
,所以必须将vlc
文件夹添加到VS的搜索目录中。
而vlc文件夹在include
文件夹中,所以我们只需要将include
文件夹添加到当前项目属性的包含目录中即可:
这里要注意上面的配置,最好将release
与debug
都添加上为好。
因为include
目录也在vs的包含目录中,所以我们就可以使用尖括号,直接引用vlc/vlc.h
了:
#include<vlc/vlc.h>
#pragma comment(lib,"lib/libvlc.lib")
#pragma comment(lib,"lib/libvlccore.lib")
int main() {
}
但运行依旧会报错,而且还是一堆莫名其妙的错误,这就是vlc
这个库的一个小bug
:
只需要我们在vlc.h
头文件前面,添加一个定义类型就好了: