MCI_OPEN_PARMS mciOpenParms;
mciOpenParms.lpstrDeviceType=(LPSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
mciOpenParms.lpstrElementName=pFileName; 
dwResult=mciSendCommand(NULL,MCI_OPEN,
         MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_WAIT|MCI_OPEN_ELEMENT,
(DWORD)(LPVOID)&mciOpenParms);
m_nDeviceID=mciOpenParms.wDeviceID;MCI_PLAY_PARMS mciPlayParms1;
mciPlayParms1.dwFrom=0; 
DWORD dwResult=mciSendCommand(m_nDeviceID,MCI_PLAY,
MCI_FROM ,(DWORD)(LPVOID)&mciPlayParms1);我用上面的代码实现了wav文件的播放,但想实现反复播放该怎样做,有没有参数直接设置后就可以反复播放?

解决方案 »

  1.   

    MCI_BREAK
    MCI_CAPTURE
    MCI_CLOSE
    MCI_CONFIGURE
    MCI_COPY
    MCI_CUE
    MCI_CUT
    MCI_DELETE
    MCI_ESCAPE
    MCI_FREEZE
    MCI_GETDEVCAPS
    MCI_INDEX
    MCI_INFO
    MCI_LIST
    MCI_LOAD
    MCI_MARK
    MCI_MONITOR   // 好像是这个
    MCI_OPEN
    MCI_PASTE
    MCI_PAUSE
    MCI_PLAY
    MCI_PUT
    MCI_QUALITY
    MCI_REALIZE
    MCI_RECORD
    MCI_RESERVE
    MCI_RESTORE
    MCI_RESUME
    MCI_SAVE
    MCI_SEEK
    MCI_SET
    MCI_SETAUDIO
    MCI_SETTIMECODE
    MCI_SETTUNER
    MCI_SETVIDEO
    MCI_SIGNAL
    MCI_SPIN
    MCI_STATUS   // 好像是这个
    MCI_STEP
    MCI_STOP
    MCI_SYSINFO
    MCI_UNDO
    MCI_UNFREEZE
    MCI_UPDATE
    MCI_WHERE
    MCI_WINDOW
      

  2.   

    播放时使用MCI_NOTIFY参数,然后处理MM_MCINOTIFY消息
      

  3.   

    typedef struct {
        DWORD dwCallback; 
        DWORD dwFrom; 
        DWORD dwTo; 
    } MCI_PLAY_PARMS;
    以上是播放参数的结构定义,没有反复播放的选项;
    同意楼上几位兄弟的意见,把播放参数的dwCallback设置成你的回调函数,从中截获播放完成消息:WOM_DONE 
    返回以后重新开始播放;