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