Informace o WASAPI

Rozhraní Windows Audio Session API (WASAPI) umožňuje klientským aplikacím spravovat tok zvukových dat mezi aplikací a zařízením zvukového koncového bodu.

Soubory hlaviček Audioclient.h a Audiopolicy.h definují rozhraní WASAPI.

Každý zvukový stream je členem zvukové relace. Prostřednictvím abstrakce relace může klient WASAPI identifikovat zvukový stream jako součást skupiny souvisejících zvukových proudů. Systém může spravovat všechny streamy v relaci jako jednu jednotku.

Zvukový modul je součást zvuku v uživatelském režimu, prostřednictvím které aplikace sdílejí přístup k zařízení zvukového koncového bodu. Zvukový systém přenáší zvuková data mezi vyrovnávací pamětí koncového bodu a zařízením koncového bodu. Pokud chcete přehrát zvukový stream prostřednictvím zařízení koncového bodu vykreslování, aplikace pravidelně zapisuje zvuková data do vyrovnávací paměti koncového bodu vykreslování. Zvukový modul kombinuje streamy z různých aplikací. Pokud chcete nahrát zvukový stream ze zařízení koncového bodu zachycení, aplikace pravidelně čte zvuková data z vyrovnávací paměti koncového bodu zachycení.

WASAPI se skládá z několika rozhraní. První z nich je rozhraní IAudioClient. Pro přístup k rozhraním WASAPI klient nejprve získá odkaz na rozhraní IAudioClient zařízení zvukového koncového bodu voláním metody IMMDevice::Activate s parametrem iid nastaveným na REFIID IID_IAudioClient. Klient volá metodu IAudioClient::Initialize pro inicializaci datového proudu na zařízení koncového bodu. Po inicializaci datového proudu může klient získat odkazy na ostatní rozhraní WASAPI voláním metody IAudioClient::GetService.

Mnoho metod v WASAPI vrací kód chyby AUDCLNT_E_DEVICE_INVALIDATED, pokud zařízení zvukového koncového bodu, které klientská aplikace používá, je neplatné. Aplikace se z této chyby může často zotavit. Další informace viz Obnova z chyby Invalid-Device.

WASAPI implementuje následující rozhraní.

Rozhraní Popis
IAudioCaptureClient Umožňuje klientovi číst vstupní data z vyrovnávací paměti koncového bodu zachycení.
IAudioClient Umožňuje klientovi vytvořit a inicializovat audio stream mezi audio aplikací a audio enginem nebo hardwarovou vyrovnávací pamětí koncového zvukového zařízení.
IAudioClock Umožňuje klientovi monitorovat rychlost dat datového proudu a aktuální pozici v datovém proudu.
IAudioRenderClient Umožňuje klientovi zapisovat výstupní data do vyrovnávací paměti koncového bodu vykreslování.
IAudioSessionControl Umožňuje klientovi konfigurovat řídicí parametry pro zvukovou relaci a monitorovat události v relaci.
IAudioSessionManager Umožňuje klientovi přístup k ovládacím prvkům relací a ovládání hlasitosti pro zvukové relace mezi procesy i ty specifické pro jednotlivé procesy.
IAudioStreamVolume Umožňuje klientovi řídit a monitorovat úrovně hlasitosti pro všechny kanály ve zvukovém streamu.
IChannelAudioVolume Umožňuje klientovi řídit úrovně hlasitosti pro všechny kanály ve zvukové relaci, do které datový proud patří.
ISimpleAudioVolume Umožňuje klientovi řídit hlavní úroveň hlasitosti zvukové relace.

 

Klienti WASAPI, kteří vyžadují oznámení událostí souvisejících s relací, by měli implementovat následující rozhraní.

Rozhraní Popis
IAudioSessionEvents Poskytuje oznámení o událostech souvisejících s relací, jako jsou změny v hladině hlasitosti, zobrazovaném názvu a stavu relace.

 

správy streamů

Referenční programování