Mp3Play控件是由德国Dialog Dedien公司编写的一个MP3软件解码器,它能在Windows 9x和NT 4两种平台上工作,用户可以通过支持ActiveX控件的Windows编程语言(例如VB、VC、Delphi、C++ Builder等)来调用它,笔者试用之后感觉Mp3Play使用起来很方便,解码输出效果相当不错,下面就向朋友们介绍一下如何在VB5和VC5中使用这个控件。
·注册控件
由于Mp3Play控件没有自带安装程序,我们在使用它之前需要手工把它注册到Windows的注册表中:首先把Mp3Play.ocx拷贝到Windows的系统目录下,然后在开始选单的RUN命令中键入“regsvr32 mp3play.ocx”,当regsvr32报告注册成功后我们就可以使用Mp3Play控件了。
·Mp3Play控件的属性
Mp3Play控件支持MPEG Audio Layer 1/2/3的解码,支持32000、44100、48000kHz等三种16位采样速率,每个具体的MP3文件的各种参数可以在Open方法调用成功之后从控件的属性值中获取。Mp3Play控件特有的属性包括:
BitRate,MP3流的比特率;
FrameCount,已打开的MP3流的总帧数;
TotalTime,以毫秒为单位计算的回放总时间;
MsPerFrame,以毫秒为单位计算的每帧占用的时间;
SampleFrequency,采样速率;
FrameNotifyCount,用于指定每播放多少帧后,控件向客户程序发送一次通知消息,客户程序可以利用通知消息来刷新用户界面上的指示器;
ChannelMode,用于指定声道的工作模式,0为立体声,1为左声道,2为右声道,3为单声道;
IsCopyrighted、IsOriginal和HasChecksums分别返回MP3流中存放的版权、复制和校验信息;
Layer,MP3流采用的编码层次;
MPEGMode,MPEG的模式;
MPEGVersion,MPEG的版本号。
这些属性中只有FrameNotifyCount和ChannelMode是可读可写的,其余属性都是只读的。
·Mp3Play控件的方法和事件
Mp3Play控件共有15个方法,它们分别是:
AboutBox(),显示“关于”对话框;
Authorize(Name,Password),向控件作者注册后可得到Mp3Play控件的使用授权号,非注册版本只能播放MP3文件的前30秒,该方法把授权号输入给控件后,如果授权号与用户名合法,控件将返回0,否则返回5;
Open(Inputfile,Outputfile),打开Inputfile指定的MP3文件,如果Outputfile为空,解码结果直接通过声卡播放出来,如果Outputfile是一个合法的文件名,解码结果将以WAVE格式存放在指定的文件中;
Play(),开始播放已打开的MP3文件;
Seek(Frame),跳至指定的帧号;
Pause(),暂停播放,再次调用时恢复播放;
Stop(),停止播放;
Close(),关闭MP3文件;
GetVolumeLeft()和GetVolumeRight(),返回左右声道的音量大小,值的范围为0~65536;
GetVolumeLeftP()和GetVolumeRightP(),以百分比的形式返回左右声道的音量大小;
SetVolume()和SetVolumeP(),设置系统播放WAVE音频数据时的音量大小;
SetErrorMode(Errmode),设置错误报告模式,ErrMode为0时表示在各个方法调用结束时直接返回错误代码,为1时表示采用标准的OLE异常处理方式。
Mp3Play控件可以产生三种事件:
ActFrame,每播放由FrameNotifyCount指定的帧数之后产生一次该事件,并在参数中给出了当前播放的帧号;
Failure,如果控件发生内部错误就产生该事件,并传递错误代码和错误信息;
ThreadEnded,当停止播放、播放完毕或发生错误时产生该事件。
·在VB5中使用Mp3Play控件
在VB5编写的程序中使用ActiveX控件是一件非常方便的事情。首先从“工程/部件”对话框中把“Dialog-Medien Mp3Play ActiveX Control”选中,然后在控件工具栏中选取Mp3Play控件的图标,把控件放置于窗体之上,设计好用户界面,最后添加合适的处理函数即可。
在Mp3Play的压缩文件中包括有一个VB程序,其中演示了如何使用Mp3Play的绝大部分属性和方法,这个程序的界面设计得非常简单,感兴趣的朋友可参考其编程方法,并重新设计适合于自己程序的用户界面。
·在VC5中使用Mp3Play控件
以AppWizard生成的基于对话框的MFC程序为例,假设工程名为TestMp3,首先选取“Project/Add to Project/Components and Controls”选单命令,在“Registered ActiveX Controls”中找到“Dialog-Medien Mp3PlayControl”,点取插入按钮后,VC5会把一个名叫CMp3Play的类加入到工程中,接下来在资源编辑器中把Mp3Play控件放置到对话框中(假设其ID号为IDC—MP3PLAYCTRL),并按需要设计好用户界面和各个控件的属性,然后在ClassWizard中为CTestmp3Dlg中的Mp3Play控件生成一个成员变量m—Mp3playCtrl,并选择处理ActFrame、ThreadEnded等事件,在需要控制Mp3Play控件的地方,通过m—Mp3playCtrl就可以调用控件的各种方法,控件的属性值则要通过相应的Get/Set函数来获取或设置,CMp3Play类中给出了所有函数和方法的定义。
摘自:网络整理
相关文章参考:
※注册ActiveX控件的几种方法(转) 分享※
与控件相关文章: