waveOutOpen函数介绍

(from MSDN)
 这个函数打开一个给定的波形音频输出装置来进行回放。
(The waveOutOpen function opens the given waveform-audio output device for playback)
URL:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveoutunprepareheader.asp

原型如下:
 MMRESULT waveOutOpen(
     LPHWAVEOUT     phwo,     
     UINT_PTR       uDeviceID,
     LPWAVEFORMATEX pwfx,     
     DWORD_PTR      dwCallback,
     DWORD_PTR      dwCallbackInstance,
     DWORD          fdwOpen   
 );

参数介绍(paramters):
phwo
 一个指向接收波形音频输出装置柄的缓冲器。用柄来区别(identify

)装置当呼叫别的波形装置输出装置。如果fdwOpen被设定为WAVE_FORMAT_QUER

Y,那么这个参数可能为NULL 。
uDevideID
 将要被打开的波形音频输出装置的ID ,它可以是一个装置ID,也可以

是一个已经打开的波形音频输入装置柄,你可以用以下的值来货替:
 值                              含义
 WAVE_MAPPER  该函数选一个能够播放给定格式的波形音频输出装置

pwfx                           一个指向区别将被送到装置的音频数据格式的WAVEFORMATEX结构的指针,你可以FREE这个结构当你一将其传到waveOutOpen 函数;

dwCallback
 它指向一个特定的CALLBACK函数,事件柄,窗口柄,或一个将在波形

音频回放时以便处理与回放进度相关的消息的期间呼叫的线程ID,如果无须CALL

BACK函数,可以将其设为0 。更多请参看waveOutProc

dwCallbackInstance
 传递到CALLBACK进程的用户实例数据。如果是窗口CALLBACK进程的话,该参数不用(设为0)
fwOpen
 用来打开装置的标识(FLAGS),它们的定义如下:
 值    含义
 CALLBACK_EVENT   dwCallback 参数栏是事件柄
 CALLBACK_FUNCTION  dwCallback 参数栏是CALLBACK过程地址
 CALLBACK_NULL   默认的设置,即无CALLBACK进程
 CALLBACK_THREAD   dwCallback 参数栏是线程ID
 CALLBACK_WINDOW   dwCallback 参数栏是窗口柄
 WAVE_ALLOWSYNC   如果该项被设置,一个同步的装

置能被打开。如果在打开一个同步驱动时没有用该项,装置打开将会失败。
 WAVE_FORMAT_DIRECT  如果设定该项,the ACM driver

does not perform conversions on the audio data.
 WAVE_FORMAT_QUERY  如果设定该项,waveOutOpen 询

问装置来决定是否支持给定的格式,但装置实际上并没有被打开。
 WAVE_MAPPED   该项被设定后uDeviceID参数表示

一个被声波映射装置映射的波形装置。

返回值:
 成功后返回MMSYSERR_NOERROR ,否则返回以下值:
 值    描述
 MMSYSERR_ALLOCATED  表示资源已存在
 MMSYSERR_BADDEVICEID  装置ID超出范围
 MMSYSERR_NODRIVER  没有驱动
 MMSYSERR_NOMEM   不能分配内存
 WAVERR_BADFORMAT  企图打开一个不被支持的格式
 WAVERR_SYNC   装置是可同步的,但waveOutOpen

没用有WAVE_ALLOWSYNC呼叫。
注:
 用waveOutGetNumDevs

函数测定在当前系统中输出装置的数目。如果uDeviceIC参数项是一个装置ID,

它将会表示从0 到总的数目,WAAVE_MAPPER常量也可以用作装置ID。
 pwfc所指的结构能够扩展到包含某些数据格式的特殊信息,例如,对

于PCM数据,一个额外的UNIT

类型用来表示取样的位数目。在这个情况下用PCMWAVEFORAMT结构。对于其它的

格式,用WAVEFORMATEX结构来表示额外的数据长度。
 如果你选用的是一个窗口或线程来接收CALLBACK信息,如下的信息将

会被送到窗口处理函数中,来表明波形音频输出进程:MM_WOM_OPEN

,MM_WOM_CLOSE ,和MM_WOM_DONE ,
 如果你选用的是一个函数来接收CALLBACK信息,如下的信息将会被传

到函数中,来显示波形音频输出进程:WOM_OPEN ,WOM_CLOSE ,WOM_DONE.
  
要求:

  Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  Header: Declared in Mmsystem.h; include Windows.h.
  Library: Use Winmm.lib.
参见:
 Waveform Audio, Waveform Functions, WAVEFORMATEX,

waveOutGetNumDevs, waveOutProc, PCMWAVEFORMAT, MM_WOM_OPEN,

MM_WOM_CLOSE, MM_WOM_DONE

你可能感兴趣的:(波形音频)