刘世荣
摘要:随着高清视频资源的日益丰富和用户对高清视频播放的需求,传统的播放器已不能满足高清视频播放的要求。以Windows XP作为开发平台,Delphi XE6为开发工具,采用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
随着互联网的快速发展和多媒体的广泛应用,FLV、MP4等已成为网络主流媒体格式,Window附带的Media Player播放器必须升级才能播放此类媒体,这给没有即时升级该播放器就希望直接使用的用户带来了困难,尽管暴风影音、QQ影音和迅雷等能播放此类媒体,但前提是所用电脑必须安装了此类播放器,而且该类播放器的体积较大[1]。针对此问题,作者在Delphi XE6(简称XE6)中利用FFmpeg的功能编写了一个能播放目前主流媒体格式的播放器,且体积小,运行效果好,开发成本低,能够满足用户需求。
FFmpeg 不仅编解码速度高,而且功能强大,即可以处理音频、视频,又可以用于录制和转换,目前得到了普遍的应用,许多流行的影音播放器是基于FFmpeg开发的。FFmpeg包含一组领先的音频、视频编码解码库,其编解码库名为 libavcodec[2]。由于FFmpeg是在Linux平台下开发的, Windows用户使用不方便。FFOCX是FFmpeg的ActiveX OCX(控件名:ActiveFFmpegControls.ocx)版,用户可以直接在Windows下使用。FFOCX工具包含有编解码模块,用户根据需要使用相应的模块,就可实现要求的功能。
具体环境:Windows XP简体中文版和Delphi XE6。
控件下载地址:http://www.ccavc.com/。
1 建立开发环境
开发播放器有两种方法:
方法一:开发一个能播放音视频文件的控件, 然后用此控件开发播放器。
方法二:利用第三方控件开发播放器。
采用第一种方法,除需要较多的专业知识外,开发周期较长;采用第二种方法,不仅控件有现存的,开发周期短,而且因为控件开发者较专业,质量可保证。因此本文采用第二种方法。
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集成环境窗口的项目管理器中Package1,选择“Install”命令,完成Package1的安装。
FFOCX控件添加成功后就可以在XE6集成环境中使用该控件了,该控件位于XE6控件箱的ActiveX控件类中。
2 播放器的实现
2.1 播放器简介
一个简单的播放器不仅有播放音视频的窗口,还应有播放按钮、暂停按钮、停止按钮、快进按钮、音量调节按钮等,用以实现相应的功能。因此可将一个简单播放器的主要功能用两个模块来实现:
(1) 播放模块:设置播放区域实现播放。
(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.