WEB开发网
开发学院软件开发VC 如何播放大型 WAV 文件 阅读

如何播放大型 WAV 文件

 2006-07-23 11:31:41 来源:WEB开发网   
核心提示: WAV文件的播放首先要通过分配一个MCI_OPEN_PARMS结构并给所要播放的WAV文件设置lpstrElementName成员打开WAV文件,将该结构和MCI_OPEN传递给mciSendCommand,如何播放大型 WAV 文件(2),打开WAV文件 并用MCI_OPEN_PARMS

WAV文件的播放首先要通过分配一个MCI_OPEN_PARMS结构并给所要播放的WAV文件设置

lpstrElementName成员打开WAV文件。将该结构和MCI_OPEN传递给mciSendCommand,打开WAV文件 并用MCI_OPEN_PARMS结构的wDeviceID成员返回元素标识符。第二步是命令波形音频设备播放 WAV文件。分配了MCI_PLAY_PARMS结构并将dwCallback成员设置为窗口句柄。如果要同步播放 音频波形文件,就增加MCI_WAIT标志并跳过窗口句柄。这样做会使应用程序在mciSendComman d函数返回之前等待WAV文件播放完毕。最可能的情况是异步播放大型WAV文件,可以象下面那 样指定MCI_NOTIFY标志并设置dwCallback成员做到这一点。

MCI_PLAY_PARMS mciPlayParms;
  MciPlayParms.dwCallback=(DWORD)pWnd->m_hWnd;
  DwResult=mciSendCommand(m_nDevice,
              MCI_PLAY,
              MCI_NOTIFY,
              (DWORD)(LPVOID)&mciPlayParms);
 

这样就开始了WAV文件的播放,并且在播放完毕后,MM_MCINOTIFY消息会发送到指定的窗口。一个WAV文件播放所发生的事件序列为:(1)命令播放WAV文件并立即返回;(2)播放WAV文 件;(3)完成后发送通知消息。

完成播放后关闭WAV文件元素是程序员的责任,简单的调用Cwave类的Stop成员函数就可以了。Stop成员函数将WAV文件标识符和MCI_CLOSE命令传递给mciSendCommand函数,不必为该命令分配一个MCI结构,下述代码关闭了WAV文件:

mciSendCommand(m_nElement,MCI_CLOSE,NULL,NULL);
   

播放完所有的WAV文件后必须关闭波形音频设备,Cwave类的析构函数调用Cwave::Close Device自动完成。 将本文中介绍的CWave类加入到自己的程序中,就可以方便的应用它播放音频文件了。

Tags:如何 播放 大型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接