怎么样用vc播放wav声音文件?

解决方案 »

  1.   

    关注这个问题我在基于对话框中用playsound,与sndplaysound时出现错误,不知怎么回事
      

  2.   

    Window Media Player控件 极其好用
      

  3.   

    我生成一个mfc对话框程序,在响应一个按钮里添加
    sndPlaySound(("D:\\sound\\music.wav",SND_ASYNC); 
    报错,说没有定义。这个函数不是在"windows.h"里吗?我也包含了,可还是说不行
    请高手指教
      

  4.   

    注意要包含lib
      
    Header: Declared in Mmsystem.h.
      Library: Use Winmm.lib.
      

  5.   

    请参考下面:
    http://www.codeproject.com/audio/
      

  6.   

    mciSendCommand
    mciSendString
    这两个都可以
      

  7.   

    DirectShow也可以,还可以播放更多的声音.
    具体的你看以前的帖子
      

  8.   

    #include “mmsystem.h”
    #pragrma comment(lib,“winmm.lib”)::PlaySound(strFileName, NULL, SND_NOWAIT);
      

  9.   

    Window Media Player控件 极其好用??
    用这个怎么声道啊!
      

  10.   

    呵呵,用MCI好了播放声音
    我们可以使用MCI来简易地实现在程序中播放MIDI和WAV等声音。使用它需要预先声明,我们需要在文件头#include <mmsystem.h>,并在工程中加入"winmm.lib"
    下面先让我们看看播放MIDI的过程。首先我们要打开设备:
    MCI_OPEN_PARMS OpenParms;
    OpenParms.lpstrDeviceType = 
    (LPCSTR) MCI_DEVTYPE_SEQUENCER; //是MIDI类型文件
    OpenParms.lpstrElementName = (LPCSTR) filename; //文件名
    OpenParms.wDeviceID =1; //打开的设备的标识,后面需要使用
    mciSendCommand (NULL, MCI_OPEN, 
    MCI_WAIT | MCI_OPEN_TYPE | 
    MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT,
    (DWORD)(LPVOID) &OpenParms); //打开设备
    接着就可以播放MIDI了:
    MCI_PLAY_PARMS PlayParms;
    PlayParms.dwFrom = 0; //从什么时间位置播放,单位为毫秒
    mciSendCommand (1, MCI_PLAY, //DeviceID需等于上面的设备标识
    MCI_FROM, (DWORD)(LPVOID)&PlayParms); //播放MIDI
    停止播放:
    mciSendCommand (1, MCI_STOP, NULL, NULL);
    最后要关闭设备:
    mciSendCommand (1, MCI_CLOSE, NULL, NULL);
    打开WAV文件与打开MIDI文件的方法几乎完全相同,只是需要将MCI_DEVTYPE_SEQUENCER 改为MCI_DEVTYPE_WAVEFORM_AUDIO。
    如果你觉得太麻烦,你可以去www.codeproject.com中audio专栏中找一些封装好的例子,用起来很方便。--------------------------
                      May you succeed!
                           ----------------------