Поделиться через


Интерфейс ISpatialAudioClient (spatialaudioclient.h)

Интерфейс ISpatialAudioClient позволяет клиенту создавать аудиопотоки, которые выдают звук из положения в трехмерном пространстве. Этот интерфейс является частью Windows Sonic, аудиоплатформы Майкрософт для более иммерсивного звука, который включает в себя интегрированный пространственный звук на Xbox и Windows.

Наследование

Интерфейс ISpatialAudioClient наследуется от интерфейса IUnknown . ISpatialAudioClient также имеет следующие типы элементов:

Методы

Интерфейс ISpatialAudioClient содержит следующие методы.

 
ISpatialAudioClient::ActivateSpatialAudioStream

Активирует и инициализирует пространственный аудиопоток с помощью одной из структур активации пространственного звукового потока.
ISpatialAudioClient::GetMaxDynamicObjectCount

Возвращает максимальное количество динамических звуковых объектов для пространственного аудиоконферентного клиента.
ISpatialAudioClient::GetMaxFrameCount

Возвращает максимально возможное количество кадров на проход обработки. Этот метод можно использовать для определения размера исходного буфера, который должен быть выделен для передачи звуковых данных для каждого прохода обработки.
ISpatialAudioClient::GetNativeStaticObjectTypeMask

Возвращает маску канала, представляющую подмножество каналов статической колонок, собственных для текущего модуля отрисовки.
ISpatialAudioClient::GetStaticObjectPosition

Возвращает позицию в трехмерном пространстве указанного статического пространственного звукового канала.
ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator

Возвращает IAudioFormatEnumerator, содержащий все поддерживаемые аудиоформаты для пространственных звуковых объектов. Первый элемент в списке представляет наиболее предпочтительный формат.
ISpatialAudioClient::IsAudioObjectFormatSupported

Возвращает значение, указывающее, поддерживает ли ISpatialAudioObjectRenderStream указанный формат.
ISpatialAudioClient::IsSpatialAudioStreamAvailable

При успешном выполнении получает значение, указывающее, поддерживает ли активный в данный момент механизм пространственной отрисовки указанный поток отрисовки пространственного звука.

Комментарии

В следующем примере кода показано, как инициализировать этот интерфейс с помощью IMMDevice.

HRESULT hr;
Microsoft::WRL::ComPtr<IMMDeviceEnumerator> deviceEnum;
Microsoft::WRL::ComPtr<IMMDevice> defaultDevice;

hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), nullptr, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&deviceEnum);
hr = deviceEnum->GetDefaultAudioEndpoint(EDataFlow::eRender, eMultimedia, &defaultDevice);

Microsoft::WRL::ComPtr<ISpatialAudioClient> spatialAudioClient;
hr = defaultDevice->Activate(__uuidof(ISpatialAudioClient), CLSCTX_INPROC_SERVER, nullptr, (void**)&spatialAudioClient);

Для приложений UWP, у которых нет доступа к IMMDevice, необходимо получить экземпляр ISpatialAudioClient , вызвав ActivateAudioInterfaceAsync. Пример см. в примере WindowsAudioSession.

Примечание При использовании интерфейсов ISpatialAudioClient в заголовке пакета средств разработки Xbox One (XDK) необходимо сначала вызвать EnableSpatialAudio перед вызовом IMMDeviceEnumerator::EnumAudioEndpoints или IMMDeviceEnumerator::GetDefaultAudioEndpoint. Сбой приведет к E_NOINTERFACE ошибке, возвращаемой из вызова Activate. EnableSpatialAudio доступен только для названий XDK и не требуется вызывать для универсальная платформа Windows приложений, работающих на Xbox One, а также для любых устройств, не относящихся к Xbox One.
 
Чтобы получить доступ к ActivateAudioIntefaceAsync, необходимо создать ссылку на файл mmdevapi.lib.

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 1703 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Целевая платформа Windows
Header spatialaudioclient.h