设为首页 加入收藏

TOP

26.1.2 可以选择播放曲目的CD播放器
2013-10-07 13:11:59 来源: 作者: 【 】 浏览:58
Tags:26.1.2 可以 选择 播放 目的 播放器

26.1.2  可以选择播放曲目的CD播放器

Windows API中提供了一组MCI函数,即媒体控制接口。提供了播放多媒体设备和录制多媒体资源文件的标准命令。这些命令为多种多媒体设备提供同一的访问接口。mciGetDeviceID()函数获取指定名称的设备标识符。其函数原型为:

  1. MCIDEVICEID mciGetDeviceID( LPCTSTR lpszDevice ); 

参数lpszDevice用于指定设备名称或已知的设备别名。函数会返回与打开的设备相连的设备标识符。如果返回值为0,表示获取关联的设备ID发生错误。返回的设备ID,可以用在mciSendCommand()函数中,对设备进行操作。mciSendCommand()函数原型为:

  1. MCIERROR mciSendCommand(  
  2. MCIDEVICEID IDDevice,       // 指定命令消息的MCI设备标识符  
  3. UINT uMsg,                  // 指定命令消息,
    可以执行播放、暂停、快进等多种操作  
  4. DWORD fdwCommand,           // 表示命令消息的选项  
  5. DWORD dwParam );            // 包含命令消息的参数结构地址 

调用mciSendCommand()函数可以向指定的MCI设备发送命令消息。如果操作成功,返回0,否则返回错误代码。使用mciGetErrorString()函数可以获取错误代码所代表的原因。下面代码演示了使用MCI函数如何播放指定曲目的CD。

  1. void CSoundSampleDlg::OnButtonPlaycd()          
    // 播放CD曲目  
  2. {  
  3.     UpdateData(true);                              
    // 获取数据  
  4.     MCIDEVICEID deviceID = mciGetDeviceID("G:\\"); 
    // 获取光驱G盘  
  5.     DWORD dwPlay = m_Volumn;                      
    // 获取音量  
  6.     DWORD dwFlags;  
  7.     MCI_DGV_PLAY_PARMS mciPlay;                   
    // 定义播放参数  
  8.     mciPlay.dwCallback = MAKELONG(m_hWnd,0);      
    // 设置回放窗体句柄  
  9.     mciPlaymciPlay.dwFrom = mciPlay.dwTo = dwPlay;  
  10.     dwFlags = MCI_NOTIFY;                          
    // 设置通知消息  
  11.     dwFlags |= MCI_DGV_PLAY_REVERSE;             
    // 设置播放消息  
  12.     MCIERROR mciError;  
  13.     // 发送播放消息  
  14.     if ((mciError=mciSendCommand(deviceID, MCI_PLAY,  
  15.                 dwFlags, (DWORD)(LPMCI_DGV_
    PLAY_PARMS)&mciPlay)) == 0)  
  16.         WriteLog("正在播放曲目……");  
  17.     Else                                        
  18.     // 如果失败,输出错误提示  
  19.     {  
  20.         char szErrorText[500]={0};  
  21.         mciGetErrorString(mciError, szErrorText, sizeof(szErrorText));  
  22.         WriteLog(szErrorText);  
  23.     }  

上面代码,使用mciGetDeviceID()函数获取CD播放器的设备ID,然后通过mciSendCommand()函数播放编辑框中用户输入的曲目序号的CD曲目。其中,第二个参数MCI_PLAY表示播放曲目,而MCI_DGV_PLAY_PARMS结构用于指定播放参数,dwFrom和dwTo表示要播放曲目的开始序号和结束序号。如果在播放时发生错误,则调用mciGetErrorString()函数返回失败原因,并在日志编辑框中显示出来。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇22.6 本章小结 下一篇26.1.4 利用PC喇叭播放声音

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: