我想用MCI播放一首歌重叠的几次怎么弄 也就是播放这首歌到中间的时候又开始播放一次 但前面那次不停继续播放 但我打开文件的时候
C/C++ code
    MCI_OPEN_PARMS openparms;
    openparms.lpstrDeviceType="waveaudio";
    openparms.lpstrElementName=nFilePath;
    int rs=mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, DWORD(&openparms));
    m_nSoundID[nID]=openparms.wDeviceID;第二次打开同一个文件的时候rs返回非0  
我的意思是在文件不被关闭的情况下还能再次播放它并且前面那次的播放不会被中断 求指教!

解决方案 »

  1.   

    void CPlayerDlg::OnOpen() 
    {
    // TODO: Add your control notification handler code here
    CString str1,str2;
    CFileDialog CFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "所有文件 (*.*)|*.*|歌曲文件 (*.mp3)|.mp3||",NULL);
    if(CFileDlg.DoModal()==IDOK)
    { str1=CFileDlg.GetPathName();
      str2=CFileDlg.GetFileTitle();
      lpName=str2;
      lpPath=str1;
      //MessageBox(lpName,"歌曲名字",MB_OK);
    }
    else MessageBox("出错了!","错误:",MB_ICONSTOP);
    MCI_OPEN_PARMS mciopenparms; 
    MCI_PLAY_PARMS mciplayparms; 
    mciopenparms.lpstrElementName=lpPath; 
    mciopenparms.lpstrDeviceType=NULL; 
    MCIERROR mcierror=mciSendCommand(NULL,MCI_OPEN,MCI_DEVTYPE_WAVEFORM_AUDIO,(DWORD)(LPVOID)&mciopenparms); 
    // ID=mciopenparms.wDeviceID; 
    if(mcierror==0) 

    mciSendCommand(mciopenparms.wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciplayparms);