【XAudio2】3.關鍵概念

3.關鍵概念

這對於使用XAudio2概述介紹了一些關鍵的概念。
XAudio2引擎
聲音
音頻圖
回調
相關主題

XAudio2 Engine

IXAudio2是XAudio2引擎和核心接口。創建一個IXAudio2接口允許客戶列舉的實例可用的音頻設備(如何:列舉音頻設備),配置全局API屬性,創建和銷燬的聲音,和監控性能。


XAudio2 Xbox 360作爲靜態庫實現。在Windows上,XAudio2被實現爲組件對象模型(COM)對象在一個動態鏈接庫(DLL),客戶可以創建使用COM CoCreateInstance函數。在這兩個平臺上,XAudio2Create 幫助層函數可以用來執行適當的實例化和初始化任務。在Xbox 360,XAudio2Create是一個真正的庫函數。在Windows XAudio2Create是內聯函數,定義在XAudio2.h,調用CoCreateInstanceIXAudio2::Initialize函數。


雖然XAudio2Create函數允許類似的實例代碼使用在這兩個平臺上,在Windows,COM函數必須在調用XAudio2Create之前調用CoInitialize或CoInitializeEx。COM的規則不允許這個函數調用被合併入XAudio2Create。同時,COM的規則需要在使用XAudio2的線程都調用CoInitialize或CoInitializeEx。


可以創建的實例XAudio2多次在一個進程。每個XAudio2對象獨立運作,並有自己的音頻處理線程。只有調試設置共享。這是很重要的,在Windows上,幾個不同的組件可以加載在一個過程的例子,互聯網Explorer-might XAudio2同時使用。雖然可以創建多個XAudio2引擎對象在一個客戶機應用程序,信息不應該各自之間傳遞圖。
一個初始化XAudio2引擎的例子,如何:初始化XAudio2。

Voices

Voices是XAudio2處理的對象,操作,播放音頻數據。XAudio2有三種類型的Voices對象。

  • Source Voices

Source Voices代表的音頻數據流。Source Voices把他們的數據傳送到其他類型的Voices。

  • Submix Voices

Submix Voices執行一些操作的音頻數據。音頻數據的一個例子可能是採樣率轉換。Submix Voices的數據處理之後,它將數據傳遞給另一個Submix Voices或Mastering Voices。

  • Mastering Voices

Mastering Voices接收數據從Source Voices和Submix Voices,並將這些數據發送到音頻硬件。
轉到 XAudio2 Voices的概述。

Audio Graph


Audio Graph是XAudio2 Voices的集合。音頻的音頻圖從一側開始聲音來源,可以通過一個或多個submix聲音,終於送到掌握的聲音。音頻圖將包含一個來源爲每個聲音現在玩的聲音,零個或多個submix的聲音,一個掌握的聲音。最簡單的音頻圖,和所需的最低XAudio2喧譁,是單一來源的聲音輸出直接掌握的聲音。看到如何:播放一個聲音與XAudio2最低的一個例子與XAudio2步驟需要扮演一個聲音。
轉到XAudio2 Audio Graph的概述。

回調


回調機制XAudio2使用信號客戶機代碼,一些事件發生的聲音或引擎對象。因爲音頻播放XAudio2引擎是異步的,回調時提供唯一的方法來確定聲音完成演奏。
轉到XAudio2回調的概述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章