文档详情

《MFC音乐播放器(MCI)》.pdf

发布:2015-10-29约5.73千字共5页下载文档
文本预览下载声明
MCI 的命令消息接口,所有MCI 命令消息都是通过mciSendCommand 函数发送的,函数声 明为: MCIERROR mciSendCommand( MCIDEVICEID wIDDevice,//设备的ID,在打开设备时不用该参数 UINT uMsg,//命令消息 DWORD fdwCommand,//命令消息的标志 DWORD dwParam //指向包含命令消息参数的结构 );//若成功则返回0,否则返回错误码 编辑本段 MCI 简介 对于程序员来说,可以把MCI 理解为设备面板上的一排按键,通过选择不同的按键(发 送不同的MCI 命令)可以让设备完成各种功能,而不必关心设备内部实现。 比如,对于play,视盘机和CD 机有不同的反应(一个是播放视频,一个播放音频), 而对用户来说却只需要按同一按钮。 应用程序通过向MCI 发送命令来控制媒体设备。MCI 命令接口分命令字符串和命令消 息两种,两者具有相同的功能。命令字符串具有使用简单的特点,但是它的执行效率不如命 令消息。 编辑本段 mciSendCommand 详细 MCI 的命令消息接口提供了C 语言接口,它速度更快,并且更能符合C/C++程序员的 需要。 所有MCI 命令消息都是通过mciSendCommand 函数发送的,函数声明为: MCIERROR mciSendCommand( MCIDEVICEID wIDDevice,//设备的ID,在打开设备时不用该参数 UINT uMsg,//命令消息 DWORD fdwCommand,//命令消息的标志 DWORD dwParam //指向包含命令消息参数的结构 );//若成功则返回0,否则返回错误码 变量wDeviceID 用来保存设备的ID,系统用ID来标识不同的设备,以保证命令发给正 确的对象。 void CTttView::OnMyMenu() { MCI_OPEN_PARMS mciOpen; UINTwDeviceID; mciOpen.lpstrDeviceType =avivideo; mciOpen.lpstrElementName = myfolder\\clock.avi; mciSendCommand(0,MCI_OPEN, MCI_OPEN_ELEMENT,(DWORD)mciOpen); wDeviceID=mciOpen.wDeviceID; MCI_PLAY_PARMSmciPlay; mciSendCommand(wDeviceID,MCI_PLAY,MCI_WAIT,(DWORD)mciPlay); ); MCI 可以通过 mciSendCommand()和mciSendString()来完成,本文仅使用 mciSendCommand()函数。 原型:DWORD mciSendCommand(UINT wDeviceID,UINT wMessage,DWORD dwParam1,DWORD dwParam2); 参数: wDeviceID:接受消息的设备ID wMessage:MCI 命令消息 dwParam1:命令的标志位 dwParam2:所使用参数块的指针 返值:调用成功,返回零;否则,返回双字中的低字存放有错误信息。 二MIDI 的播放控制 1. 打开设备 MCI_OPEN_PARMS OpenParms; OpenParms.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_SEQUENCER;//MIDI 类型 OpenParms.lpstrElementName = (LPCSTR)Filename; OpenParms.wDeviceID=0; mciSendCommand (NULL, MCI_OPEN, MCI_WAIT|MCI_OPEN_TYPE| MCI_OPEN_TYPE_ID| MCI_OPEN_ELEMENT, (DWORD)(LPVOID)OpenParms) MCI 设备ID指明打开了哪个设备,当发送了MCI_OPEN 命令时,这个值在参数块 中返回——应被保存备用。 2. 关闭设备
显示全部
相似文档