• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于QT 的音視頻播放器設(shè)計

      2022-07-11 01:13:42徐特
      電子技術(shù)與軟件工程 2022年4期
      關(guān)鍵詞:播放器音視頻調(diào)用

      徐特

      (蘇州長風(fēng)航空電子有限公司 江蘇省蘇州市 215151)

      音視頻播放器是指能播放以數(shù)字信號形式存儲的音頻及視頻的軟件程序。目前市面上存在數(shù)十種播放器,適用于桌面端、移動端等各種場景,有的設(shè)計精簡、有的功能強大,一般都能支持各種常見的媒體格式(.mkv、.rmvb、.mpg、.mp4、.avi 等)。雖然各種播放器性能和功能都各不相同,但也有一些不足之處,如暴風(fēng)影音占用系統(tǒng)資源大,射手播放器的播放列表并不顯示到主界面上等,且通常無法支持六路同時播放。本文將根據(jù)特定需求,設(shè)計并實現(xiàn)一款界面簡潔,操作簡單,功能強大,支持多種媒體格式的音視頻播放器。

      1 功能需求

      音視頻播放器應(yīng)具備以下主要功能:

      (1)六路音視頻同時解碼,按數(shù)據(jù)編碼時間戳播放同步播放;

      (2)可進行播放、暫停、停止等操作;

      (3)可調(diào)節(jié)音量;

      (4)可隨意切換“六等分畫面”、“主從畫面”、“單畫面”三種模式進行播放;

      (5)單幀前進及單幀后退播放功能;

      (6)對文件中標(biāo)記的時間進行快速跳轉(zhuǎn)查找;

      (7)具備時間搜索定位功能,精確到秒級;

      (8)支持快進播放和慢放功能;

      (9)支持快退播放;

      (10)提供主要狀態(tài)信息查詢功能;

      (11)具有用戶名、密碼等權(quán)限管理功能;

      (12)具備視頻截圖和視頻截取功能;

      (13)可將記錄載體中的記錄數(shù)據(jù)文件下載到本地硬盤。

      2 開發(fā)環(huán)境介紹

      2.1 Qt 開發(fā)工具

      QT 是諾基亞開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架。自QT 進入商業(yè)領(lǐng)域,它已經(jīng)成為全世界范圍內(nèi)數(shù)千種成功的應(yīng)用程序的基礎(chǔ)。信號和槽機制是QT 的核心機制,信號和槽是一種高級接口,應(yīng)用于對象之間的通信,它是QT 的核心特性,也是QT 區(qū)別于其它工具包的重要地方。

      Qt 提供了一整套的窗口部件。它們組合起來可用于創(chuàng)建用戶界面的可視元素。按鈕、菜單、滾動條、消息框和應(yīng)用程序窗口都是窗口部件的實例。

      2.2 mpv播放內(nèi)核

      mpv 是開源播放器mplayer 和mplayer2 的一個分支,界面精簡,功能齊全。其在Linux 上擁有廣泛的輸出設(shè)備支持,相對于PotPlayer 它最大的特點是跨平臺,支持動態(tài)lua 腳本解析,可高度定制化。內(nèi)置ffmpeg 解碼器,支持絕大部分的視頻和音頻格式,支持ass 特效字幕,GPU 解碼能力十分出色,支持本地播放和網(wǎng)絡(luò)播放。mpv 官方提供了一個Qt 的demo,可以下載學(xué)習(xí)mpv 的Qt 二次開發(fā)。

      3 開發(fā)準(zhǔn)備

      (1)QT 官網(wǎng)上下載Qt 5.6.1 mingw32 位安裝包并安裝完成。

      (2)配置mpv。

      在mpv 官網(wǎng)上下載mpv 開發(fā)包,包含.h 文件、.lib 文件和.dll 文件,在Qt 工程的.pro 文件中添加包含mpv 的.h文件和.lib 文件的路徑。將mpv-1.dll 文件拷貝至Qt 生成的.exe 文件所在的路徑下。

      4 界面設(shè)計

      4.1 登錄界面

      軟件登錄界面設(shè)置了用戶名和密碼輸入窗口,實現(xiàn)對用戶登錄進行權(quán)限管理,保障了軟件使用的安全性,用戶權(quán)限分為以下兩種:

      普通用戶:可使用播放器的所有功能

      管理員用戶:可使用播放器的所有功能,且可以對普通用戶進行管理,包括增加、修改、刪除用戶等。

      4.2 播放器主界面

      播放器主界面如圖1 所示。(1)“文件”可以選擇需要播放的視頻文件夾;

      圖1:播放器主界面

      (2)“控制”可以選擇文件加載,跳轉(zhuǎn)到文件加載界面,還可以選擇界面布局,等分或主從;

      (3)包括“版本信息”,“檢測修復(fù)”和“格式化”;

      (4)在管理員賬號下會顯示“管理”菜單,可實現(xiàn)對賬號的增加、修改和刪除操作;

      (5)單個播放界面的開始/暫停和停止按鈕;

      (6)分別為截圖和視頻截取按鈕,點擊截圖后可自動將當(dāng)前畫面保存為圖片,點擊視頻截取按鈕后會彈出對話框,輸入起始時間實現(xiàn)視頻截取,如圖2 所示。

      圖2:視頻截取

      (7)等分和主從模式切換按鈕;

      (8)跳至上一幀和下一幀;

      (9)時間檢索輸入框,在框內(nèi)輸入需要檢索的時間點,按回車鍵后即可跳轉(zhuǎn)至該時間點播放;

      (10)選擇播放速度;

      (11)備用按鍵,令其他路視頻與第一路同步;

      (12)根據(jù)mark 文件進行跳轉(zhuǎn);

      (13)根據(jù)shoot 文件進行跳轉(zhuǎn);

      (14)音量控制條。

      5 功能實現(xiàn)

      5.1 解碼播放及控制

      使用mpv 來解碼播放,需要用mpv_node 處理,而Qt中如何轉(zhuǎn)成mpv_node 需要特殊的處理才行,因此自己直接封裝多個接口,傳入的參數(shù)都支持QVariant 類型,提高了兼容性,可以傳入各種不同類型的數(shù)據(jù)參數(shù)。

      主要通用接口如下:

      封裝完通用接口后就可以通過命令和屬性的調(diào)用來實現(xiàn)視頻的解碼播放和播放控制等,為方便使用,先封裝一個mpv 播放器類和一個視頻顯示窗體類,在mpv 播放器類中封裝一些常用的接口,比如播放、暫停、獲取視頻總長、靜音、截圖等。

      解碼播放的流程如下:

      (1)調(diào)用mpv_create 創(chuàng)建實例。

      (2)調(diào)用mpv_set_option 設(shè)置播放句柄。

      (3)調(diào)用mpv_set_property 設(shè)置一些屬性比如啟用鍵盤輸入等。

      (4)調(diào)用mpv_set_option 設(shè)置一些參數(shù)比如硬解碼、超時時間等。

      (5)調(diào)用mpv_initialize 初始化實例。

      (6)調(diào)用mpv_command_async 執(zhí)行命令loadfile 打開文件播放。

      (7)調(diào)用mpv_terminate_destroy 釋放實例。

      解碼播放的核心代碼如下:

      用mpv 來讀取文件的信息以及設(shè)置當(dāng)前播放進度、音量等是通過讀取和設(shè)置屬性來處理的,具體有哪些屬性及各自的含義可以在mpv 官網(wǎng)上查找。

      常用的一些屬性:

      (1)視頻原始寬度高度width height

      (2)視頻保存視頻文件 stream-record 為空則表示停止錄像

      (3)暫停播放 pause yes 表示暫停no 表示繼續(xù)

      (4)視頻文件時長 duration

      (5)靜音 mute yes 表示靜音no 表示非靜音

      (6)獲取播放進度 time-pos

      (7)設(shè)置播放進度 seek

      (8)截圖 screenshot-to-file

      5.2 登錄及用戶管理

      登錄及用戶管理通過數(shù)據(jù)庫來實現(xiàn),Qt 中對數(shù)據(jù)庫的操作主要通過QSqlQuery 實現(xiàn),QSqlQuery 提供了執(zhí)行數(shù)據(jù)庫語句的方法,在Qt 中利用QSqlQuery 類實現(xiàn)了執(zhí)行SQL語句。

      核心代碼如下:

      5.3 視頻播放效果

      經(jīng)測試,該播放器可同時流暢播放六路音視頻,播放效果如圖3。

      圖3:視頻播放效果圖

      6 總結(jié)

      本文設(shè)計的音視頻播放器經(jīng)實際使用,能夠滿足前面所提的所有需求,可實現(xiàn)六路音視頻同時播放,可實現(xiàn)播放、暫停、停止、快進、快退、音量調(diào)節(jié)和時間顯示等播放控制功能,支持多種常見的多媒體格式,畫面播放流暢,界面簡潔,操作便捷,占用空間小,完成了預(yù)期的目標(biāo)。

      猜你喜歡
      播放器音視頻調(diào)用
      Walkman誕生40周年 索尼適時發(fā)布NW-ZX500和NW-A100系列播放器
      核電項目物項調(diào)用管理的應(yīng)用研究
      3KB深圳市一禾音視頻科技有限公司
      基于STM32的MP3播放器設(shè)計
      電子制作(2019年9期)2019-05-30 09:41:44
      Moon ACE播放器/放大器一體機
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      WIFI音視頻信號傳輸?shù)年P(guān)鍵問題探究
      電子制作(2018年12期)2018-08-01 00:48:06
      高速公路整合移動音視頻系統(tǒng)應(yīng)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      播放器背板注塑模具設(shè)計
      中國塑料(2015年8期)2015-10-14 01:10:55
      巫溪县| 炉霍县| 九龙坡区| 新河县| 南康市| 峡江县| 万源市| 韩城市| 西和县| 泸州市| 定结县| 秦皇岛市| 文成县| 柘荣县| 秭归县| 麻城市| 延津县| 全南县| 仙居县| 鸡东县| 东城区| 贡觉县| 潼南县| 深圳市| 嘉祥县| 泰来县| 峨山| 崇左市| 罗山县| 富裕县| 东兴市| 庆云县| 东乌珠穆沁旗| 娄烦县| 三亚市| 宣恩县| 库伦旗| 贵州省| 舒兰市| 巫溪县| 乐山市|