<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>

          libVLC 視頻截圖

          共 1609字,需瀏覽 4分鐘

           ·

          2020-08-23 14:03

          1

          截圖方式


          在觀看影視的過(guò)程中,經(jīng)常會(huì)出現(xiàn)一些精彩畫面,我們可以將它保存起來(lái)、分享給朋友、或者是用作桌面背景。。。這時(shí)候截圖就顯得非常重要。


          常見的截圖方式有以下幾種:


          • 使用 PrintScreen 鍵 ,截取整個(gè)屏幕的內(nèi)容。

          • 使用 Alt + Printscreen 鍵,截取當(dāng)前活動(dòng)窗口的內(nèi)容。

          • 使用播放器內(nèi)置的截圖功能(一般會(huì)有相應(yīng)的截圖按鈕),截取當(dāng)前播放的畫面。


          很顯然,在絕大多數(shù)情況下,內(nèi)置的截圖功能是最佳選擇。因?yàn)闊o(wú)論是使用 PrintScreen 還是 Alt + Printscreen,都有可能會(huì)截取到與當(dāng)前畫面無(wú)關(guān)的內(nèi)容。


          那么,如何使用 libVLC 來(lái)實(shí)現(xiàn)這樣一個(gè)截圖功能呢?



          2

          主要接口


          截圖相對(duì)比較簡(jiǎn)單,主要涉及一個(gè)核心 API:


          int?libvlc_video_take_snapshot(?libvlc_media_player_t?*p_mi,?unsigned?num,
          ????????????????????????????????const?char?*psz_filepath,?unsigned?int?i_width,
          ????????????????????????????????unsigned?int?i_height?)
          ;


          共有五個(gè)參數(shù),大概說(shuō)一下各自的含義:


          • 參數(shù)一:p_mi,媒體播放器實(shí)例;

          • 參數(shù)二:num,視頻輸出的數(shù)量(通常為 0,指第一個(gè));

          • 參數(shù)三:psz_filepath,保存截圖的文件/文件夾路徑;

          • 參數(shù)四:i_width,截圖的寬度;

          • 參數(shù)五:i_height,截圖的高度。


          需要注意一點(diǎn),如果 i_width AND i_height 為 0,則使用原始大小;如果 i_width XOR i_height 為 0,則保留原始的寬高比。


          成功時(shí)返回值為 0,未找到視頻時(shí)為 -1。



          3

          實(shí)現(xiàn)方式


          下面,來(lái)播放一個(gè)本地視頻,并進(jìn)行截圖:



          播放 10 秒吧,截圖并將其保存為名為 test.png 的圖片:


          int?main()
          {
          ????const?char?*?localMrl?=?"Sample.mkv";

          ????libvlc_instance_t?*instance;
          ????libvlc_media_player_t?*player;
          ????libvlc_media_t?*media;

          ????instance?=?libvlc_new(0,?nullptr);
          ????media?=?libvlc_media_new_path(instance,?localMrl);
          ????player?=?libvlc_media_player_new_from_media(media);
          ????libvlc_media_player_play(player);

          ????QThread::sleep(10);

          ????//?截圖
          ????libvlc_video_take_snapshot(player,?0,?"test.png",?0,?0);

          ????libvlc_media_release(media);
          ????libvlc_media_player_release(player);
          ????libvlc_release(instance);

          ????return?0;
          }


          當(dāng)程序退出之后,就能在當(dāng)前目錄下找到該圖片了(如上圖所示)。當(dāng)然了,也可以將上面的相對(duì)路徑(test.png)更改為絕對(duì)路徑(例如:E:/test.png)。


          ·END·
          ?

          作者:一去、二三里
          愛學(xué)習(xí),愛編程,愛生活。
          歡迎來(lái)撩,一起暢談程序人生!

          點(diǎn)個(gè)在看,么么噠!

          瀏覽 82
          點(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>
                  久久99蜜桃精品 | 色哟哟 入口国产精品 | 亚洲AV无码成人精品一区 | 亚洲护士无码 | 三区麻豆传媒视频 |