注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

php asp 高端网站开发 微信网站开发 视频会议软硬件

 
 
 

日志

 
 

waveOutOpen函数介绍  

2011-11-12 04:36:22|  分类: 音频采集 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

这个函数打开一个给定的波形音频输出装置来进行回放。

原型如下:

MMRESULT waveOutOpen(
LPHWAVEOUT      phwo,                /* 一个指向接收波形音频输出装置柄的缓冲器 */
UINT_PTR        uDeviceID,           /* 将要被打开的波形音频输出装置的ID */
LPWAVEFORMATEX pwfx,               /* 一个指向将被送到装置的音频数据格式的WAVEFORMATEX结构的指针 */
DWORD_PTR       dwCallback,         /* 它指向一个特定的CALLBACK函数,事件柄,窗口柄... */
DWORD_PTR       dwCallbackInstance,   /* 传递到CALLBACK进程的用户实例数据,如是窗口,该参数设为0 */
DWORD           fdwOpen               /* 用来打开装置的标识(FLAGS) */
);



参数介绍(paramters):

phwo
一个指向接收波形音频输出装置柄的缓冲器。用柄来区别(identify)装置当呼叫别的波形装置输出装置。如果fdwOpen被设定为 WAVE_FORMAT_QUERY,那么这个参数可能为NULL 。

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

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

dwCallback
它指向一个特定的CALLBACK函数,事件柄,窗口柄,或一个将在波形音频回放时以便处理与回放进度相关的消息的期间呼叫的线程ID,如果无须CALLBACK函数,可以将其设为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.
  评论这张
 
阅读(6476)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017