Skip to main content

XDspConnect

建立與硬體伺服器的連線、建立 XDSP 用戶端執行個體,並配置處理所需的資源。全域限制為同時最多 8 個作用中的 XDSP 用戶端。

語法

參數

baseBuffer   _In_
類型:float*
由 XDSP 呼叫端配置的連續緩衝區,用來傳遞輸入資料及擷取輸出資料。如需其他詳細資料,請參閱下方的備註一節。 baseBufferLength   _In_
類型:uint32_t
baseBuffer 的長度 (以位元組為單位)。此長度必須至少為 64 KB,且不超過 500 MB。 aggregateImpulseResponseInSeconds   _In_
類型:uint32_t
代表將在此用戶端上同時啟用之所有個別脈衝回應持續時間的總持續時間。對於 XDspProcessType::Convolution,aggregateImpulseResponseInSeconds 必須設定為大於零的值,否則必須為零。所有 XDSP 用戶端的彙總脈衝回應全域限制為 128 秒。 handle   _Outptr_
類型:XDspClientHandle*
XDSP 用戶端的控制代碼,應用來透過 XDspActivate 啟用串流,以及透過 XDspDisconnect 將用戶端與硬體伺服器中斷連線。所有 XDSPClientHandle 在任何指定時間最多可以有 256 個作用中的串流。

傳回值

類型:HRESULT 如果方法成功,會傳回 S_OK。如果方法失敗,會傳回下列其中一個代碼 (部分清單):

備註

如果呼叫成功,呼叫端可以使用 baseBuffer 透過 XDspCommand 參數來傳遞輸入資料及擷取串流的輸出資料。如果使用 Envelope,此緩衝區也應該納入用於儲存 Envelope 參數的緩衝區。如需 Envelope 的詳細資訊,請參閱使用 XDSP API 的 Envelope 概觀。 必須先呼叫此函式,才能啟用 XDSP 串流,以註冊一個足以容納下列項目的大型記憶體區塊:做為輸入的多個完整音訊串流、將透過 XDspActivate 啟用之所有 XDSP 串流的多個輸出緩衝區,以及可能用於 XDspProcessType::ForwardFourierTransform 處理類型之 XDspCommand 的多個區塊乘數緩衝區。請注意上述此緩衝區的最小和最大大小需求。如果此呼叫成功,所有 XDSP 串流都可以存取此記憶體區塊的任何部分。 此記憶體應透過 XMemAlloc() 以下列屬性配置:XALLOC_MEMTYPE_PHYSICAL_CACHEABLE、XALLOC_PAGESIZE_64KB、XALLOC_ALIGNMENT_64K 這些屬性應使用 MAKE_XALLOC_ATTRIBUTES() 設定。 範例如下:
上述範例中的 allocatorId 應取代為遊戲所使用的正確配置器識別碼。 由呼叫端負責分割及回收 baseBuffer,以容納多個串流的不同輸入串流和輸出緩衝區。impulseResponse 不需要來自此 baseBuffer,它可以來自呼叫端所配置的任何記憶體。 在呼叫 XDspConnect 之前,不應釋放 baseBuffer 所指向的記憶體。 傳遞給 XDSP API 的所有記憶體指標都必須以 16 位元組對齊。 如果呼叫成功,將會傳回有效的 XDspClientHandle,以便搭配 XDspActivate 和 XDspDisconnect 呼叫使用。

需求

標頭: XDspAudio.h 程式庫: Chad.lib 支援的平台: XBOX Series X|S

概念文件

另請參閱

XDSP
XDspConnectWithMaximumStreamLimit
XDspDisconnect
XDSP 錯誤
使用 XDSP API 進行單一串流 Convolution 的概觀
使用 XDSP API 進行單一串流 FFT/IFFT 的概觀
使用 XDSP API 進行含 Envelope 的單一串流 Convolution 的概觀
Last modified on October 6, 2026