5.如何初始化 XAudio2
这个例子创建一个XAudio2引擎实例,并创建一个Mastering Voice。
初始化XAudio2
1.创建一个XAudio2引擎实例通过XAudio2Create函数。
-
#ifndef _XBOX CoInitializeEx(NULL, COINIT_MULTITHREADED); #endif
IXAudio2* pXAudio2 = NULL;
HRESULT hr; if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
Windows
在Windows上,应用程序必须调用CoInitializeEx方法在XAudio2Create之前调用。此外,COM的规则需要CoInitialize或CoInitializeEx在任何线程被调用在使用XAudio2之前。
2.创建一个Mastering Voice通过CreateMasteringVoice函数。
Mastering Voice封装了一个音频设备,是所有音频的最终目的地,通过音频图。
-
if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice, XAUDIO2_DEFAULT_CHANNELS, XAUDIO2_DEFAULT_SAMPLERATE, 0, 0, NULL ) ) ) return hr;
注意
在这个例子中,CreateMasteringVoice使用默认值0 DeviceIndex参数。这导致XAudio2把全局默认的音频设备给Mastering Voice。这个值也可以由遍历可用的音频设备,并根据标准选择一个特定于应用程序的。例如选择音频设备基于特定于应用程序的标准,看如何:列举音频设备。