VC编写音频播放器.ppt

上传人:牧羊曲112 文档编号:6522794 上传时间:2023-11-08 格式:PPT 页数:13 大小:1MB
返回 下载 相关 举报
VC编写音频播放器.ppt_第1页
第1页 / 共13页
VC编写音频播放器.ppt_第2页
第2页 / 共13页
VC编写音频播放器.ppt_第3页
第3页 / 共13页
VC编写音频播放器.ppt_第4页
第4页 / 共13页
VC编写音频播放器.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《VC编写音频播放器.ppt》由会员分享,可在线阅读,更多相关《VC编写音频播放器.ppt(13页珍藏版)》请在三一办公上搜索。

1、VC+编写音乐播放器,程序效果,音乐播放器可以播放Windows下常用的音频和视频文件,如MP3、MIDI、WAV、WMA等。程序的界面如图所示。用户可通过文件对话框添加想要播放的文件和删除音乐文件,并可实现暂停、关闭或重播的功能,并显示播放的时间和正在播放文件的全路径和文件名,同时,在媒体文件播放的过程中,用户可随时调节音,还可以设置播放模式,如单曲循环,顺序播放等,同时,可以同步歌词。,程序界面,创建初始界面程序,实现界面美化1,首先新建一个工程,取个好听的名字,这里命名为Multimedia,然后选择Dialog based,点击OK完成。2,设置对话框显示风格。在对话框点右键属性,设置

2、边框为细小,把标题栏复选框去掉,其他默认。如图:,3,界面布局。在对话框中添加相应的控件,完成相应功能,最终效果如图:,4.进行对话框、控件的相应美化。(1)给对话框添加背景(2)给按钮添加位图(3)使静态文本透明实现播放音乐Windows MCI与多媒体软件开发Windows MCI(Media Control Interface)是控制多媒体设备的高层命令接口,提供了与设备无关的控制多媒体设备的方法。MCI可控制的多媒体设备包括标准的多媒体设备,如CD音频(CD Audio)、数字视频、动画、Wave格式数字声音和MIDI音序器,以及影碟机等可选设备。MCI包含在Windows系统的MMS

3、YSTEM.DLL动态链接库中,用以协调多媒体事件和MCI设备驱动程序之间的通信。一些MCI设备驱动程序,影碟机设备驱动程序,可以直接控制目标设备;另外一些MCI 设备驱动程序,如Wave和MIDI 设备驱动程序,通过MMSYSTEM中的函数间接控制目标设备;还有一些MCI设备驱动程序则提供了与其他Windows动态链接库的高层接口。MCI提供两种不同但相互联系的接口方式。第一种方式利用消息和数据结构来给多媒体设备发送命令并接收设备传来的信息,这种方法用函数mciSendCommand来给设备发送命令。其原型为:,MCIERROR mciSendCommand(MCIDEVICEID IDDe

4、vice,UINT uMsg,DWORD fdwCommand,DWORD dwParam);参数IDDevice表示用来接收命令的设备的标识符,注意在打开设备时不用该参数uMsg是要发送的命令;fdwCommand是命令消息的标志,而参数dwParam则是一个指向包含命令消息的参数的结构。如该参数返回非0 值,则表示设备驱动出错,这时可用mciGetErrorString函数来取得错误信息,其原型为:BOOL mciGetErrorString(DWORD fdwError,LPTSTR lpszErrorText,UINT cchErrorText);参 数 fdwError 是由mciS

5、endCommand 或mciSendString 返回的错误代码;参数lpszErrorText是一个指针,它指向用来存储错误描述信息的缓冲区;参数cchErrorText表示缓冲区的长度,以字符为单位。,MCI接口的第二种方式是使用ASCII字符串来发送驱动设备的命令,这种方式采用函数mciSendString把命令字符发送给设备。其原型为:MCIERROR mciSendString(LPCTSTR lpszCommand,LPTSTR lpszReturnString,UINT cchReturn,第5 章媒体播放器多媒体程序设计113HANDLE hwndCallback);参数lp

6、szCommand是要发送的MCI命令字符串;参数lpszReturnString是一个指向接收返回信息的缓冲区的指针;cchReturn表示缓冲区的长度,以字符为单位;hwndCallback是回调窗口的句柄,一般为NULL。这 种 字 符 串 命 令 很 直 观 方 便,近 似 自 然 语 言,如“play cdaudio”,“stop waveaudio”等。返回的信息字符串由lpszReturnString带回,如该函数返回非0值,同样可用mciGetErrorString获取错误信息。,为了使用MCI编程,必须包含多媒体头文件:#include 并在项目属性中添加对多媒体库winmm

7、.lib链接。,wchar_t buf256;MCIERROR err=mciSendString(Lopen cdaudio alias cd,NULL,0,NULL);/打开CDif(err)if(mciGetErrorString(err,buf,256)MessageBox(buf,LError);/获得并显示错误串return;mciSendString(Lstatus cd number of tracks,buf,256,NULL);/获得音轨总数m_nTracks=wcstol(buf,NULL,10);/这里使用了宽字符版的字符串到整数的/转换函数:long wcstol(c

8、onst wchar_t*nptr,wchar_t*endptr,int base);wsprintf(buf,Lplay cd from%d to%d,m_nFrom,m_nTo);mciSendString(buf,NULL,0,NULL);/从音轨m_nFrom头播放到音轨m_nTo1尾,其他常用命令:mciSendString(Lset cd time format tmsf,NULL,0,NULL);/设置时间格式为/轨(100):分(100):秒(60):帧(75),一秒=75块,一块=98帧mciSendString(Lset cd door open,NULL,0,NULL);

9、/打开光驱mciSendString(Lset cd door closed,NULL,0,NULL);/关闭光驱mciSendString(Lpause cd,NULL,0,NULL);/暂停播放mciSendString(Lresume cd,NULL,0,NULL);/恢复播放mciSendString(Lstop cd,NULL,0,NULL);/停止播放mciSendString(Lclose cd,NULL,0,NULL);/关闭CD设备mciSendString(Lstatus cd length,buf,256,NULL);/获得整个CD的音轨总长度mciSendString(

10、Lstatus cd length track 5,buf,256,NULL);/获得第5个音轨的长度mciSendString(Lstatus cd current track,buf,256,NULL);/获得当前音轨号,注意:play cd from m_nFrom to m_nTo是完整形式,它还有其他形式:play cd from m_nFrom从m_nFrom播放到盘尾play cd to m_nTo从当前位置播放到指定音轨play cd 从当前位置播放到盘尾例如播放最后一首歌:play cd from m_nLast2)WAVwchar_t buf256;wsprintf(buf

11、,Lopen%s alias sound type waveaudio,pDoc-strFilePath);MCIERROR err=mciSendString(buf,NULL,0,NULL);if(err)if(mciGetErrorString(err,buf,256)MessageBox(buf,L“Error”);return;,/t1和t2为用户指定的起止时间(单位为秒,浮点变量)DWORD start=(DWORD)(t1*1000+0.5),end=(DWORD)(t2*1000+0.5);wsprintf(buf,Lplay sound from%ld to%ld,start,end);mciSendString(buf,NULL,0,NULL);其他常用命令:mciSendString(Lstatus sound length,buf,256,NULL);mciSendString(Lpause sound,NULL,0,NULL);mciSendString(Lplay sound,NULL,0,NULL);/从当前位置播放到文件尾mciSendString(Lstop sound,NULL,0,NULL);mciSendString(Lclose sound,NULL,0,NULL);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号