acmStreamOpen 函式 (msacm.h)

acmStreamOpen函式會開啟 ACM 轉換資料流程。 轉換資料流程可用來將資料從一個指定的音訊格式轉換成另一個。

語法

MMRESULT ACMAPI acmStreamOpen(
  LPHACMSTREAM   phas,
  HACMDRIVER     had,
  LPWAVEFORMATEX pwfxSrc,
  LPWAVEFORMATEX pwfxDst,
  LPWAVEFILTER   pwfltr,
  DWORD_PTR      dwCallback,
  DWORD_PTR      dwInstance,
  DWORD          fdwOpen
);

參數

phas

將接收可用來執行轉換之新資料流程控制碼之控制碼的指標。 此控制碼可用來識別呼叫其他 ACM 資料流程轉換函式中的資料流程。 如果指定ACM_STREAMOPENF_QUERY旗標,此參數應該是 Null

had

ACM 驅動程式的控制碼。 如果指定此控制碼,它會識別要用於轉換資料流程的特定驅動程式。 如果此參數為 Null,則會查詢所有適合安裝的 ACM 驅動程式,直到找到相符專案為止。

pwfxSrc

將指標指標指向可識別轉換所需來源格式的 一個要求 來源結構。

pwfxDst

可識別轉換所需目的地格式的 一個顯示型別的一個顯示型 別。

pwfltr

WAVEFILTER結構的指標,可識別要在轉換資料流程上執行的所需篩選作業。 如果不需要篩選作業,此參數可以是 Null。 如果指定篩選準則,則來源 (pwfxSrc) 和目的地 (pwfxDst) 格式必須相同。

dwCallback

回呼函式的指標、視窗的控制碼或事件的控制碼。 只有在使用 ACM_STREAMOPENF_ASYNC 旗標開啟轉換資料流程時,才會呼叫回呼函式。 當轉換資料流程開啟或關閉,以及轉換每個緩衝區之後,就會收到回呼函式的通知。 如果開啟轉換資料流程而不使用 ACM_STREAMOPENF_ASYNC 旗標,則此參數應設定為零。

dwInstance

傳遞至 dwCallback 參數所指定回呼函式的使用者實例資料。 此參數不會與視窗和事件回呼搭配使用。 如果開啟轉換資料流程而不使用 ACM_STREAMOPENF_ASYNC 旗標,則此參數應設定為零。

fdwOpen

開啟轉換資料流程的旗標。 定義下列值。

[ACMSTREAMHEADER] (./ns-msacm-acmstreamheader.md) ACMSTREAMHEADER_STATUSF_DONE 旗標的結構。
意義
ACM_STREAMOPENF_ASYNC
ACM_STREAMOPENF_NONREALTIME ACM 不會在轉換資料時考慮時間條件約束。 根據預設,驅動程式會嘗試即時轉換資料。 針對某些格式,指定此旗標可能會改善音訊品質或其他特性。
ACM_STREAMOPENF_QUERY 系統會查詢 ACM,以判斷它是否支援指定的轉換。 轉換資料流程將不會開啟,而且不會在 phas 參數中傳回任何控制碼。
CALLBACK_EVENT dwCallback參數是事件的控制碼。
CALLBACK_FUNCTION dwCallback參數是回呼程式位址。 函式原型必須符合 acmStreamConvertCallback 原型。
CALLBACK_WINDOW dwCallback參數是視窗控制碼。

傳回值

如果成功或發生錯誤,則傳回零。 可能的錯誤值包括下列專案。

傳回碼 描述
ACMERR_NOTPOSSIBLE
無法執行要求的作業。
MMSYSERR_INVALFLAG
至少有一個旗標無效。
MMSYSERR_INVALHANDLE
指定的控制碼無效。
MMSYSERR_INVALPARAM
至少有一個參數無效。
MMSYSERR_NOMEM
系統無法配置資源。

備註

如果 ACM 驅動程式無法執行即時轉換,且未為 fdwOpen 參數指定ACM_STREAMOPENF_NONREALTIME旗標,則開啟的作業將會失敗傳回ACMERR_NOTPOSSIBLE錯誤碼。 應用程式可以使用 ACM_STREAMOPENF_QUERY 旗標來判斷輸入是否支援即時轉換。

如果應用程式使用視窗接收回呼資訊,則會將MM_ACM_OPEN、MM_ACM_CLOSE和MM_ACM_DONE訊息傳送至視窗程式函式,以指出轉換資料流程的進度。 在此情況下,MM_ACM_DONE的 ACMSTREAMHEADER 結構,但不會用於MM_ACM_OPEN和MM_ACM_CLOSE。

如果應用程式使用函式來接收回呼資訊,則會將MM_ACM_OPEN、MM_ACM_CLOSE和MM_ACM_DONE訊息傳送至函式,以指出電壓音訊輸出的進度。 回呼函式必須位於動態連結程式庫 (DLL) 。

如果應用程式使用事件來回呼通知,事件會發出訊號以指出轉換資料流程的進度。 事件會在資料流程開啟、轉換每個緩衝區之後,以及資料流程關閉時發出訊號。

需求

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

另請參閱

音訊壓縮函式

音訊壓縮管理員