共用方式為


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 。 可能的錯誤值包括下列專案。

傳回碼 描述
MMSYSERR_ALLOCATED
已配置指定的資源。
MMSYSERR_BADDEVICEID
指定的裝置識別碼超出範圍。
MMSYSERR_NODRIVER
沒有設備磁碟機。
MMSYSERR_NOMEM
無法配置或鎖定記憶體。
WAVERR_BADFORMAT
嘗試以不支援的電壓音訊格式開啟。

備註

使用 waveInGetNumDevs 函式來判斷系統上存在的電壓音訊輸入裝置數目。 uDeviceID指定的裝置識別碼會從零到一個小於存在的裝置數目。 WAVE_MAPPER常數也可以當做裝置識別碼使用。

如果您選擇有視窗或執行緒接收回呼資訊,則會將下列訊息傳送至視窗程式或執行緒,以指出音訊輸入的進度: MM_WIM_OPENMM_WIM_CLOSEMM_WIM_DATA

如果您選擇讓函式接收回呼資訊,則會將下列訊息傳送至函式,以指出電壓音訊輸入的進度: WIM_OPENWIM_CLOSEWIM_DATA

需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 mmeapi.h (包含 Windows.h)
程式庫 Winmm.lib
Dll Winmm.dll

另請參閱

電壓音訊

電壓函數