共用方式為


XAudio2 作業集

此概觀介紹數個 XAudio2 方法,您可以在作業集內呼叫。

數個 XAudio2 方法會採用 OperationSet 引數,以便將其呼叫為延遲群組的一部分。 在特定時間,您可以使用該群組的OperationSet識別碼呼叫函式 IXAudio2::CommitChanges,同時套用一組整個變更。 識別碼是任一數字。 因此,它可讓用戶端程式代碼的個別部分將個別不可部分的不可部分變更套用至圖形,而不會有任何衝突。 建議的做法是,每當用戶端需要產生唯一的新 OperationSet 識別碼時,用戶端就會遞增全域計數器。 圖形的一組變更會以不可部分完成的方式套用,以確保取樣正確。 例如,語音會同步處理。

如果您將 OperationSet 設定為 XAUDIO2_COMMIT_NOW,則會立即套用變更。 它會在方法呼叫之後的第一個音訊處理階段生效。 如果您使用 XAUDIO2_COMMIT_ALL 呼叫 CommitChanges ,則不論其 OperationSet 識別碼為何,都會執行所有暫止作業集的變更。

從 XAudio2 回呼呼叫時,某些方法會立即生效,而 OperationSet 為 XAUDIO2_COMMIT_NOW。 所有其他採用 OperationSet 引數的方法只會在呼叫 方法之後,對下一個處理階段生效, (如果以 XAUDIO2_COMMIT_NOW) 呼叫,或在 CommitChanges 使用相同的 OperationSet呼叫之後。 因此,某些方法呼叫不一定會依呼叫的順序發生。

呼叫 IXAudio2::StopEngine 時,所有擱置中的作業都會以不可部分完成的方式認可。 不論提供的 OperationSet 值為何,在引擎停止時呼叫的任何方法都會立即生效。 當您重新開機引擎時,XAudio2 會返回非同步模式。

作業集很有用的簡單案例包括下列範例。

  • 同時啟動多個語音。
  • 同時將緩衝區提交至語音、設定語音參數,以及啟動語音。
  • 對圖形進行大規模的變更,例如將所有來源語音連接到新的副混音。

如需使用作業集的範例,請參閱 如何:將音訊方法分組為作業 集。

作業集方法

您可以將下列方法呼叫為作業集的一部分。

如先前所述,用戶端程式代碼最終必須呼叫 函式 IXAudio2::CommitChanges 來執行延後變更。

作業集

XAudio2 程式設計指南

使用方法:將音訊方法群組為操作集