劉世榮
摘要:隨著高清視頻資源的日益豐富和用戶對高清視頻播放的需求,傳統(tǒng)的播放器已不能滿足高清視頻播放的要求。以Windows XP作為開發(fā)平臺,Delphi XE6為開發(fā)工具,采用FFOCX控件,編程實(shí)現(xiàn)播放音視頻文件的功能是容易的。
關(guān)鍵詞: Delphi;播放器;FFOCX控件
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)10-0182-03
Abstract:As the high-definition video resources increasingly rich and user demand for high-definition video playback, traditional players cannot meet the requirements of the hd video playback. In Windows XP as a development platform, Delphi XE6 as development tool, using FFOCX control, programming is easy to realize the function of play audio and video files.
Key words:Delphi; Player; FFOCX Control
隨著互聯(lián)網(wǎng)的快速發(fā)展和多媒體的廣泛應(yīng)用,F(xiàn)LV、MP4等已成為網(wǎng)絡(luò)主流媒體格式,Window附帶的Media Player播放器必須升級才能播放此類媒體,這給沒有即時(shí)升級該播放器就希望直接使用的用戶帶來了困難,盡管暴風(fēng)影音、QQ影音和迅雷等能播放此類媒體,但前提是所用電腦必須安裝了此類播放器,而且該類播放器的體積較大[1]。針對此問題,作者在Delphi XE6(簡稱XE6)中利用FFmpeg的功能編寫了一個能播放目前主流媒體格式的播放器,且體積小,運(yùn)行效果好,開發(fā)成本低,能夠滿足用戶需求。
FFmpeg 不僅編解碼速度高,而且功能強(qiáng)大,即可以處理音頻、視頻,又可以用于錄制和轉(zhuǎn)換,目前得到了普遍的應(yīng)用,許多流行的影音播放器是基于FFmpeg開發(fā)的。FFmpeg包含一組領(lǐng)先的音頻、視頻編碼解碼庫,其編解碼庫名為 libavcodec[2]。由于FFmpeg是在Linux平臺下開發(fā)的, Windows用戶使用不方便。FFOCX是FFmpeg的ActiveX OCX(控件名:ActiveFFmpegControls.ocx)版,用戶可以直接在Windows下使用。FFOCX工具包含有編解碼模塊,用戶根據(jù)需要使用相應(yīng)的模塊,就可實(shí)現(xiàn)要求的功能。
具體環(huán)境:Windows XP簡體中文版和Delphi XE6。
控件下載地址:http://www.ccavc.com/。
1 建立開發(fā)環(huán)境
開發(fā)播放器有兩種方法:
方法一:開發(fā)一個能播放音視頻文件的控件, 然后用此控件開發(fā)播放器。
方法二:利用第三方控件開發(fā)播放器。
采用第一種方法,除需要較多的專業(yè)知識外,開發(fā)周期較長;采用第二種方法,不僅控件有現(xiàn)存的,開發(fā)周期短,而且因?yàn)榭丶_發(fā)者較專業(yè),質(zhì)量可保證。因此本文采用第二種方法。
FFOCX控件是ActiveX控件,不包含在XE6中,因此不能在XE6中直接使用, XE6中必須正確安裝才能使用。XE6中安裝FFOCX控件的步驟如下:
1.1 注冊控件
Windows中注冊FFOCX控件是通過運(yùn)行regsvr32命令來實(shí)現(xiàn)的。命令格式:
regsvr32 ActiveFFmpegControls.ocx。
若該控件不在當(dāng)前目錄下,還需指明該控件的路徑。
1.2 XE6中添加FFOCX控件
(1) 啟動XE6。
(2) 新建一個默認(rèn)名為Package的包。
(3) 運(yùn)行部件(Component)菜單下的導(dǎo)入部件(Import Component)命令,打開導(dǎo)入部件(Import Component)對話框。
(4) 選擇導(dǎo)入ActiveX 控件(Import ActiveX Control)單選項(xiàng),單擊
(5) 在Registered ActiveX Controls對話框的部件列表框中選擇
(6) 單擊
(7) 單擊
(8) 選擇
(9) 鼠標(biāo)右擊XE6集成環(huán)境窗口的項(xiàng)目管理器中Package1,選擇“Install”命令,完成Package1的安裝。
FFOCX控件添加成功后就可以在XE6集成環(huán)境中使用該控件了,該控件位于XE6控件箱的ActiveX控件類中。
2 播放器的實(shí)現(xiàn)
2.1 播放器簡介
一個簡單的播放器不僅有播放音視頻的窗口,還應(yīng)有播放按鈕、暫停按鈕、停止按鈕、快進(jìn)按鈕、音量調(diào)節(jié)按鈕等,用以實(shí)現(xiàn)相應(yīng)的功能。因此可將一個簡單播放器的主要功能用兩個模塊來實(shí)現(xiàn):
(1) 播放模塊:設(shè)置播放區(qū)域?qū)崿F(xiàn)播放。
(2) 控制模塊:利用按鈕元件實(shí)現(xiàn)包括播放、暫停、停止,以及音量控制等功能。
功能結(jié)構(gòu)圖如圖3所示[3]。
2.2 設(shè)計(jì)播放器界面
(1) 新建一個基于VCL 窗體的應(yīng)用程序,取名為MyofPlayer,窗體標(biāo)題(caption)設(shè)為“Myplayer”,其項(xiàng)目名稱為My_Of_Palyer。
(2) 在窗體上添加一個面板(Panel)控件(該面板為播放視頻窗口),控件名稱取默認(rèn)值,標(biāo)題(Caption)設(shè)為空,視頻窗口不可調(diào)(即Pancel1的BorderStyle的屬性設(shè)為bsSingle)。
(3) 在窗體上添加一個opendialog(打開文件)控件,用于打開文件選擇對話框,名稱默認(rèn)。
(4) 添加三個Label(標(biāo)簽)控件,名稱默認(rèn),其caption屬性分別為“文件”和“音量”,Label2的caption屬性用于顯示文件位置。
(5) 添加四個Button(按鈕)控件,名稱分別為bt1、bt2、bt3和bt4。標(biāo)題(Caption)屬性分別設(shè)置為“打開”、“暫?!薄ⅰ巴V埂焙汀翱爝M(jìn)”。
(6) 添加FFplayer控件(該控件位于工具箱的ActiveX類中),控件名(即Name屬性)設(shè)置為FFPL,用于解碼選擇的音視頻文件。
(7) 調(diào)整窗體和各控件的大小及位置,如圖4所示。
2.3 各控件程序代碼
(1) “打開”按鈕程序代碼
單擊該按鈕,能將打開的對話框中選擇的音視頻文件在指定位置顯示并播放。
3 小結(jié)
以上簡單介紹了怎樣用FFOCX的功能去實(shí)現(xiàn)本地音視頻文件的播放。FFOCX控件功能強(qiáng)大,不僅可播放本地文件 也可以播放遠(yuǎn)程的音視頻文件,還可以瀏覽圖片。此外,該控件還可實(shí)現(xiàn)錄制。用戶只要充分利用FFOCX的功能,就可以設(shè)計(jì)出屬于自己的功能強(qiáng)大的多媒體播放器。
參考文獻(xiàn):
[1]向隅.PowerBuilder中使用OLE對象實(shí)現(xiàn)Flv視頻文件的播放[J].東莞理工學(xué)院,2010,6(3):40-43
[2]苗健,許應(yīng)康.基于FFmpeg的視頻播放軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2015,38(12):83~84.
[3]邱秀榮,王小芬,陳磊.基于Flash的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2015,11(33):137-138.