c#语言如何使用waveoutopen和waveoutwrite函数

发布时间 : 星期六 文章c#语言如何使用waveoutopen和waveoutwrite函数更新完毕开始阅读

c#语言如何使用waveoutopen和

waveoutwrite函数

waveOutOpen

该waveoutopen功能开放给波形音频输出设备播放。 MMRESULT waveInOpen(

LPHWAVEIN phwi, //输入设备句柄 UINT uDeviceID, //输入设备ID

LPWAVEFORMATEX pwfx, //录音格式指针

DWORD dwCallback, //处理MM_WIM_***消息的回调函数或窗口句柄,线程ID DWORD dwCallbackInstance,

DWORD fdwOpen //处理消息方式的符号位 ); 参数介绍:

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. waveOutWrite

该waveoutwrite功能发送一个数据块到给波形音频输出设备。

MMRESULT waveOutWrite( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh ); 参数 hwo

处理向波形音频输出设备。 pwh

指针到一个wavehdr结构含有有关数据块。 cbwh

大小,在字节,该wavehdr结构。 返回值

返回mmsyserr_noerror如果成功的话或一个错误,否则。可能的错误价值观,包括下列各项。 值说明

mmsyserr_invalhandle指定的设备句柄无效。 mmsyserr_nodriver没有设备驱动程序是目前的。 mmsyserr_nomem无法分配或锁上记忆。

waverr_unprepared数据座指出,由威尔斯亲王医院的参数尚未准备。

联系合同范文客服:xxxxx#qq.com(#替换为@)