waveInOpen 函数 (mmeapi.h)
waveInOpen 函数打开给定波形音频输入设备进行录制。
语法
MMRESULT waveInOpen(
LPHWAVEIN phwi,
UINT uDeviceID,
LPCWAVEFORMATEX pwfx,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
parameters
phwi
指向缓冲区的指针,该缓冲区接收标识打开的波形音频输入设备的句柄。 调用其他波形音频输入函数时,使用此句柄标识设备。 如果为 fdwOpen 指定了WAVE_FORMAT_QUERY,则此参数可以为 NULL。
uDeviceID
要打开的波形音频输入设备的标识符。 它可以是设备标识符,也可以是开放波形音频输入设备的句柄。 可以使用以下标志而不是设备标识符。
值 | 含义 |
---|---|
WAVE_MAPPER | 函数选择能够以指定格式录制的波形音频输入设备。 |
pwfx
指向 WAVEFORMATEX 结构的指针,该结构标识录制波形音频数据所需的格式。 可以在 waveInOpen 返回后立即释放此结构。
dwCallback
指向固定回调函数、事件句柄、窗口句柄的指针,或在波形音频录制期间要调用的线程标识符,以处理与录制进度相关的消息。 如果不需要回调函数,则此值可以为零。 有关回调函数的详细信息,请参阅 waveInProc。
dwInstance
传递给回调机制的用户实例数据。 此参数不与窗口回调机制一起使用。
fdwOpen
用于打开设备的标志。 定义了以下值。
值 | 含义 |
---|---|
CALLBACK_EVENT | dwCallback 参数是一个事件句柄。 |
CALLBACK_FUNCTION | dwCallback 参数是回调过程地址。 |
CALLBACK_NULL | 无回调机制。 这是默认设置。 |
CALLBACK_THREAD | dwCallback 参数是线程标识符。 |
CALLBACK_WINDOW | dwCallback 参数是窗口句柄。 |
WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE |
如果指定了此标志并且 uDeviceID 参数 WAVE_MAPPER,则函数将打开默认通信设备。
仅当 uDeviceID 等于 WAVE_MAPPER 时,此标志才适用。 注意 需要 Windows 7
|
WAVE_FORMAT_DIRECT | 如果指定了此标志,则 ACM 驱动程序不会对音频数据执行转换。 |
WAVE_FORMAT_QUERY | 函数查询设备以确定它是否支持给定格式,但它不会打开设备。 |
WAVE_MAPPED | uDeviceID 参数指定要由波形映射器映射到的波形音频设备。 |
返回值
如果成功 , 则返回MMSYSERR_NOERROR,否则返回错误。 可能的错误值包括以下内容。
返回代码 | 说明 |
---|---|
|
已分配指定的资源。 |
|
指定的设备标识符在范围外。 |
|
不存在设备驱动程序。 |
|
无法分配或锁定内存。 |
|
尝试使用不支持的波形音频格式打开。 |
注解
使用 waveInGetNumDevs 函数确定系统上存在的波形音频输入设备的数量。 uDeviceID 指定的设备标识符从 0 到比存在的设备数少 1 不等。 WAVE_MAPPER常量也可以用作设备标识符。
如果选择让窗口或线程接收回调信息,则会将以下消息发送到窗口过程或线程以指示波形音频输入的进度: MM_WIM_OPEN、 MM_WIM_CLOSE和 MM_WIM_DATA。
如果选择让函数接收回调信息,则会向函数发送以下消息以指示波形音频输入的进度: WIM_OPEN、 WIM_CLOSE和 WIM_DATA。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | mmeapi.h (包括 Windows.h) |
Library | Winmm.lib |
DLL | Winmm.dll |