다음을 통해 공유


ISpatialAudioClient 인터페이스(spatialaudioclient.h)

ISpatialAudioClient 인터페이스를 사용하면 클라이언트가 3D 공간의 위치에서 오디오를 내보내는 오디오 스트림을 만들 수 있습니다. 이 인터페이스는 Xbox 및 Windows의 통합 공간 사운드를 포함하는 몰입형 오디오를 위한 Microsoft의 오디오 플랫폼인 Windows Sonic의 일부입니다.

상속

ISpatialAudioClient 인터페이스는 IUnknown 인터페이스에서 상속됩니다. ISpatialAudioClient 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

ISpatialAudioClient 인터페이스에는 이러한 메서드가 있습니다.

 
ISpatialAudioClient::ActivateSpatialAudioStream

공간 오디오 스트림 활성화 구조 중 하나를 사용하여 공간 오디오 스트림을 활성화하고 초기화합니다.
ISpatialAudioClient::GetMaxDynamicObjectCount

공간 오디오 클라이언트에 대한 동적 오디오 개체의 최대 수를 가져옵니다.
ISpatialAudioClient::GetMaxFrameCount

처리 패스당 가능한 최대 프레임 수를 가져옵니다. 이 메서드는 각 처리 패스에 대한 오디오 데이터를 전달하기 위해 할당해야 하는 원본 버퍼의 크기를 결정하는 데 사용할 수 있습니다.
ISpatialAudioClient::GetNativeStaticObjectTypeMask

현재 렌더링 엔진이 기본인 정적 스피커 베드 채널의 하위 집합을 나타내는 채널 마스크를 가져옵니다.
ISpatialAudioClient::GetStaticObjectPosition

지정된 정적 공간 오디오 채널의 3D 공간에서 위치를 가져옵니다.
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);

IMMDevice에 액세스할 수 없는 UWP 앱의 경우 ActivateAudioInterfaceAsync를 호출하여 ISpatialAudioClient의 instance 가져와야 합니다. 예제는 WindowsAudioSession 샘플을 참조하세요.

참고 Xbox One 개발 키트(XDK) 타이틀에서 ISpatialAudioClient 인터페이스를 사용하는 경우 먼저 IMMDeviceEnumerator::EnumAudioEndpoints 또는IMMDeviceEnumerator::GetDefaultAudioEndpoint를 호출하기 전에 EnableSpatialAudio를 호출해야 합니다. 이렇게 하지 않으면 활성화 호출에서 E_NOINTERFACE 오류가 반환됩니다. EnableSpatialAudio는 XDK 타이틀에만 사용할 수 있으며 Xbox One에서 실행되는 유니버설 Windows 플랫폼 앱이나 Xbox One 이외의 장치에 대해 호출할 필요가 없습니다.
 
ActivateAudioIntefaceAsync에 액세스하려면 mmdevapi.lib에 연결해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1703 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 spatialaudioclient.h