如:打开mci设备
  用别名播放
  关闭mci设备
(手边没有MSDN)

解决方案 »

  1.   

    包含winmm.lib 
    #include <mmsystem.h>
    void PlayFile() 
    {
    // TODO: Add your control notification handler code here
    char acTemp[100];
    memset(acTemp,0,sizeof(acTemp));
    sprintf(acTemp,"tmpdjh.wav");
    unsigned long lRet = 0;
    MCI_OPEN_PARMS OpenParms;
    OpenParms.dwCallback = (DWORD)GetSafeHwnd();
    OpenParms.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_WAVEFORM_AUDIO; OpenParms.lpstrElementName = (LPCSTR)acTemp; OpenParms.wDeviceID = NULL;
    lRet = mciSendCommand(NULL,
                      MCI_OPEN,
                      MCI_WAIT|MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,
                      (DWORD)(LPVOID)&OpenParms);
    if(lRet==0)
    {
    MCI_PLAY_PARMS PlayParms;
    PlayParms.dwCallback  = (DWORD)GetSafeHwnd();

    MCI_SEEK_PARMS SeekParms;
    SeekParms.dwCallback  = (DWORD)GetSafeHwnd();
         PlayParms.dwFrom = SeekParms.dwTo = 20*1000;//(nMinute * 60 + nSecond) * 1000;
        //跳转的目标时间,时间单位为毫秒
        mciSendCommand (OpenParms.wDeviceID, MCI_SEEK, MCI_TO|MCI_WAIT,(DWORD)(LPVOID)&SeekParms);
    lRet = mciSendCommand(OpenParms.wDeviceID,
                      MCI_PLAY,
      MCI_FROM,
      (DWORD)(LPVOID)&PlayParms);
    }

    if(OpenParms.wDeviceID)
    {
    lRet = mciSendCommand(OpenParms.wDeviceID,MCI_STOP,NULL,NULL);
    lRet = mciSendCommand(OpenParms.wDeviceID,MCI_CLOSE,NULL,NULL);
    }
    }