Mp3Play.ocx控件让音乐之声响起来

本文介绍了如何在VB5和VC5中使用由Dialog Dedien公司编写的Mp3Play.ocx控件来播放MP3。首先需要手动注册控件,然后可以通过控件的属性、方法和事件来控制播放。属性包括比特率、帧数等,方法如Open、Play、Seek等,事件如ActFrame、Failure和ThreadEnded。文章提供了在VB和VC中使用该控件的简单示例。
摘要由CSDN通过智能技术生成

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类中给出了所有函数和方法的定义。

摘自:网络整理 

 
 
 
 

相关参考

关于三个概念:ActiveXOLECOM

注册ActiveX控件的几种方法() 分享

VB 单击ListView控件某列表头进行排序

控件关文章:

VB表格控件总览与例程分析

VB 设置控件边框颜色(如:ListTextPicture)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值