waveInOpen 函式 (mmeapi.h)
waveInOpen函式會開啟指定的電壓音訊輸入裝置進行錄製。
語法
MMRESULT waveInOpen(
LPHWAVEIN phwi,
UINT uDeviceID,
LPCWAVEFORMATEX pwfx,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
參數
phwi
接收控制碼的緩衝區指標,識別開啟的電壓輸入裝置。 呼叫其他電壓音訊輸入函式時,使用此控制碼來識別裝置。 如果為fdwOpen指定了WAVE_FORMAT_QUERY,這個參數可以是Null。
uDeviceID
要開啟的電壓音訊輸入裝置識別碼。 它可以是裝置識別碼或開啟的電壓輸入裝置控制碼。 您可以使用下列旗標,而不是裝置識別碼。
值 | 意義 |
---|---|
WAVE_MAPPER | 函式會選取能夠以指定格式錄製的電壓音訊輸入裝置。 |
pwfx
將指標指標指向可識別錄製電壓音訊資料所需的格式。 您可以在 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指定的裝置識別碼會從零到一個小於存在的裝置數目。 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) |
程式庫 | Winmm.lib |
Dll | Winmm.dll |