<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          在 Windows 下使用 libVLC

          共 1268字,需瀏覽 3分鐘

           ·

          2020-08-21 08:59

          在前面,我們分享了很多 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·
          ?

          瀏覽 369
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费A片在线看 | 超碰97av在线 | 日日撸av | 国产激情自拍视频 | 无码三级视频在线观看 |