资源描述:
《vc编写音频播放器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++编写音乐播放器程序效果音乐播放器可以播放Windows下常用的音频和视频文件,如MP3、MIDI、WAV、WMA等。程序的界面如图所示。用户可通过文件对话框添加想要播放的文件和删除音乐文件,并可实现暂停、关闭或重播的功能,并显示播放的时间和正在播放文件的全路径和文件名,同时,在媒体文件播放的过程中,用户可随时调节音,还可以设置播放模式,如单曲循环,顺序播放等,同时,可以同步歌词。程序界面创建初始界面程序实现界面美化1,首先新建一个工程,取个好听的名字,这里命名为Multimedia,然后选择Dialogbased,点击OK完成。2,设置
2、对话框显示风格。在对话框点右键属性,设置边框为细小,把标题栏复选框去掉,其他默认。如图:3,界面布局。在对话框中添加相应的控件,完成相应功能,最终效果如图:4.进行对话框、控件的相应美化。(1)给对话框添加背景(2)给按钮添加位图(3)使静态文本透明实现播放音乐WindowsMCI与多媒体软件开发WindowsMCI(MediaControlInterface)是控制多媒体设备的高层命令接口,提供了与设备无关的控制多媒体设备的方法。MCI可控制的多媒体设备包括标准的多媒体设备,如CD音频(CDAudio)、数字视频、动画、Wave格式数字声音
3、和MIDI音序器,以及影碟机等可选设备。MCI包含在Windows系统的MMSYSTEM.DLL动态链接库中,用以协调多媒体事件和MCI设备驱动程序之间的通信。一些MCI设备驱动程序,影碟机设备驱动程序,可以直接控制目标设备;另外一些MCI设备驱动程序,如Wave和MIDI设备驱动程序,通过MMSYSTEM中的函数间接控制目标设备;还有一些MCI设备驱动程序则提供了与其他Windows动态链接库的高层接口。MCI提供两种不同但相互联系的接口方式。第一种方式利用消息和数据结构来给多媒体设备发送命令并接收设备传来的信息,这种方法用函数mciSend
4、Command来给设备发送命令。其原型为:MCIERRORmciSendCommand(MCIDEVICEIDIDDevice,UINTuMsg,DWORDfdwCommand,DWORDdwParam);参数IDDevice表示用来接收命令的设备的标识符,注意在打开设备时不用该参数uMsg是要发送的命令;fdwCommand是命令消息的标志,而参数dwParam则是一个指向包含命令消息的参数的结构。如该参数返回非0值,则表示设备驱动出错,这时可用mciGetErrorString函数来取得错误信息,其原型为:BOOLmciGetErrorSt
5、ring(DWORDfdwError,LPTSTRlpszErrorText,UINTcchErrorText);参数fdwError是由mciSendCommand或mciSendString返回的错误代码;参数lpszErrorText是一个指针,它指向用来存储错误描述信息的缓冲区;参数cchErrorText表示缓冲区的长度,以字符为单位。MCI接口的第二种方式是使用ASCII字符串来发送驱动设备的命令,这种方式采用函数mciSendString把命令字符发送给设备。其原型为:MCIERRORmciSendString(LPCTSTRlp
6、szCommand,LPTSTRlpszReturnString,UINTcchReturn,第5章媒体播放器——多媒体程序设计113HANDLEhwndCallback);参数lpszCommand是要发送的MCI命令字符串;参数lpszReturnString是一个指向接收返回信息的缓冲区的指针;cchReturn表示缓冲区的长度,以字符为单位;hwndCallback是回调窗口的句柄,一般为NULL。这种字符串命令很直观方便,近似自然语言,如“playcdaudio”,“stopwaveaudio”等。返回的信息字符串由lpszRetur
7、nString带回,如该函数返回非0值,同样可用mciGetErrorString获取错误信息。为了使用MCI编程,必须包含多媒体头文件:#include并在项目属性中添加对多媒体库winmm.lib链接。wchar_tbuf[256];MCIERRORerr=mciSendString(L"opencdaudioaliascd",NULL,0,NULL);//打开CDif(err){if(mciGetErrorString(err,buf,256))MessageBox(buf,L"Error");//获得并显示错误串
8、return;}mciSendString(L"statuscdnumberoftracks",buf,256,NULL);//获得音轨总数m_nTr