在 Windows 下使用 libVLC

在前面,我們分享了很多 VLC 理論相關(guān)的知識(shí),現(xiàn)在是時(shí)候一展身手了!
由于 libVLC 是跨平臺(tái)的,所以可以在 Windows、Linux 等多個(gè)平臺(tái)上進(jìn)行開(kāi)發(fā)。本節(jié)我們將先從 Windows 開(kāi)始著手,分享下如何在 VS 中使用 libVLC。在后面的文章中,會(huì)分享 VLC 在 Linux 下的編譯,以及跨平臺(tái)的環(huán)境配置、開(kāi)發(fā)!
1
安裝 SDK
在 Windows 平臺(tái),VLC 二進(jìn)制安裝程序不包含 libVLC SDK,因?yàn)閷?duì)大多數(shù)用戶(hù)而言,這會(huì)浪費(fèi)帶寬和空間。要獲取 SDK 文件(即:頭文件和庫(kù)文件),可以從官網(wǎng)直接下載 7-ZIP 軟件包,也可以由源碼構(gòu)建。
為了便于使用,進(jìn)入VLC 下載頁(yè)面(詳見(jiàn):https://download.videolan.org/pub/videolan/vlc/),直接下載編譯好的壓縮包:

完成之后,進(jìn)行解壓縮,然后就可以看到 SDK 了:

對(duì)于我們來(lái)說(shuō),只需要用到以下部分:
頭文件(.h):位于 sdk/include 目錄下
庫(kù)文件(.lib):位于 sdk/lib 目錄下
動(dòng)態(tài)鏈接庫(kù)和插件(.dll):libvlc.dll、libvlccore.dll 以及 plugins 目錄下的所有文件。
2
項(xiàng)目配置
打開(kāi) VS,新建一個(gè)工程。然后,右鍵項(xiàng)目,打開(kāi)屬性窗口進(jìn)行項(xiàng)目配置。
首先,選擇“C/C++ -> 常規(guī)”,將 sdk/include 添加到“附加包含目錄”中:

然后,選擇“連接器 -> 常規(guī)”,將 sdk/lib 添加到“附加庫(kù)目錄”中:

最后,選擇“連接器 -> 輸入”,將庫(kù)文件 libvlc.lib、libvlccore.lib 添加到“附加依賴(lài)項(xiàng)”中:

經(jīng)過(guò)以上幾步,配置就基本完成了,下面來(lái)寫(xiě)一個(gè)簡(jiǎn)單的示例程序。
3
示例程序
既然是測(cè)試程序,就應(yīng)該盡可能的簡(jiǎn)潔,能保證環(huán)境正常使用就足夠了。
好了,來(lái)一個(gè)加強(qiáng)版的“Hello, World!”。代碼比較簡(jiǎn)單,一起來(lái)看看吧:
#include?
using?namespace?std;
//?避免?ssize_t?引發(fā)的錯(cuò)誤
#if?defined(_MSC_VER)
#include?
typedef?SSIZE_T?ssize_t;
#endif
#include?
int?main()
{
????//?獲取?libVLC?的版本
????const?char?*version?=?libvlc_get_version();
????//?獲取編譯?libVLC?的編譯器版本
????const?char?*compiler?=?libvlc_get_compiler();
????//?獲取?libVLC?的變更集
????const?char?*changeset?=?libvlc_get_changeset();
????cout?<"Hello,?libVLC!"?<endl;
????cout?<"Version?is:?"?<endl;
????cout?<"Compiler?is:?"?<endl;
????cout?<"Changeset?is:?"?<endl;
????getchar();
????return?0;
}
在這里,我們包含了 vlc.h,它是 libVLC 中的一個(gè)全局頭文件,其中包含了其他常用的頭文件(例如:libvlc.h、libvlc_media_player.h 等),這在以后會(huì)經(jīng)常用到。隨后,就可以調(diào)用相應(yīng)的接口獲取 libVLC 的版本、編譯器等信息了。
最后,在一些高版本的 VS 中,可能會(huì)出現(xiàn)以下錯(cuò)誤:
error:?C2065:?“l(fā)ibvlc_media_read_cb”:?未聲明的標(biāo)識(shí)符
這可以通過(guò)上述代碼中的 typedef 來(lái)解決。
需要注意的是,在運(yùn)行程序之前,記得將 libvlc.dll、libvlccore.dll 以及 plugins 目錄拷貝至程序所在目錄。

大功告成,到這里就說(shuō)明環(huán)境沒(méi)有問(wèn)題了!
·END·
?
