AUDCLNT_STREAMFLAGS_XXX Konstanten

Gibt Merkmale an, die ein Client einem Audiodatenstrom während der Initialisierung des Datenstroms zuweisen kann.

Konstante/Wert BESCHREIBUNG
AUDCLNT_STREAMFLAGS_CROSSPROCESS
0x00010000
Der Audiostream ist Mitglied einer prozessübergreifenden Audiositzung. Weitere Informationen finden Sie in den Hinweisen.
AUDCLNT_STREAMFLAGS_LOOPBACK
0x00020000
Der Audiostream wird im Loopbackmodus ausgeführt. Weitere Informationen finden Sie in den Hinweisen.
AUDCLNT_STREAMFLAGS_EVENTCALLBACK
0x00040000
Die Verarbeitung des Audiopuffers durch den Client wird ereignisgesteuert. Weitere Informationen finden Sie in den Hinweisen.
AUDCLNT_STREAMFLAGS_NOPERSIST
0x00080000
Die Lautstärke- und Stummschaltungseinstellungen für eine Audiositzung bleiben bei Anwendungsneustarts nicht erhalten. Weitere Informationen finden Sie in den Hinweisen.
AUDCLNT_STREAMFLAGS_RATEADJUST
0x00100000
Diese Konstante ist neu in Windows 7. Die Abtastrate des Datenstroms wird an eine von einer Anwendung angegebene Rate angepasst. Weitere Informationen finden Sie in den Hinweisen.
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM
0x80000000
Ein Kanalmatrixer und ein Sampleratekonverter werden nach Bedarf eingefügt, um zwischen dem unkomprimierten Format, das in IAudioClient::Initialize bereitgestellt wird, und dem Audio-Engine-Mixformat zu konvertieren.
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY
0x08000000
Bei Verwendung mit AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM wird ein Sampleratekonverter mit einer besseren Qualität als die Standardkonvertierung, aber mit höheren Leistungskosten verwendet. Dies sollte verwendet werden, wenn das Audio letztendlich von Menschen gehört werden soll, im Gegensatz zu anderen Szenarien wie dem Pumpen von Stille oder dem Auffüllen eines Messgeräts.

Bemerkungen

Die IAudioClient::Initialize-Methode und die DIRECTX_AUDIO_ACTIVATION_PARAMS-Struktur verwenden die AUDCLNT_STREAMFLAGS_XXX Konstanten.

Das flag AUDCLNT_STREAMFLAGS_CROSSPROCESS gibt an, dass es sich bei der Audiositzung für den Stream um eine prozessübergreifende Sitzung handelt. Eine prozessübergreifende Sitzung kann Streams aus mehreren Prozessen akzeptieren. Wenn zwei Anwendungen in zwei separaten Prozessen IAudioClient::Initialize mit identischen Sitzungs-GUIDs aufrufen und beide Anwendungen das AUDCLNT_SHAREMODE_CROSSPROCESS-Flag festlegen, weist die Audio-Engine ihre Streams derselben prozessübergreifenden Sitzung zu. Dieses Flag überschreibt das Standardverhalten, das darin besteht, den Stream einer prozessspezifischen Sitzung und nicht einer prozessübergreifenden Sitzung zuzuweisen. Das AUDCLNT_STREAMFLAGS_CROSSPROCESS Flagbit ist mit dem exklusiven Modus nicht kompatibel. Weitere Informationen zu prozessübergreifenden Sitzungen finden Sie unter Audiositzungen.

Das flag AUDCLNT_STREAMFLAGS_LOOPBACK ermöglicht die Loopbackaufzeichnung. Bei der Loopbackaufzeichnung kopiert die Audio-Engine den Audiostream, der von einem Renderingendpunktgerät wiedergegeben wird, in einen Audioendpunktpuffer, sodass ein WASAPI-Client den Stream erfassen kann. Wenn dieses Flag festgelegt ist, versucht die IAudioClient::Initialize-Methode , einen Erfassungspuffer auf dem Renderinggerät zu öffnen. Dieses Flag ist nur für ein Renderinggerät und nur gültig, wenn der Initialize-Aufruf den ShareMode-Parameter auf AUDCLNT_SHAREMODE_SHARED festlegt. Andernfalls schlägt der Initialize-Aufruf fehl. Wenn der Aufruf erfolgreich ist, kann der Client die IAudioClient::GetService-Methode aufrufen, um eine IAudioCaptureClient-Schnittstelle auf dem Renderinggerät abzurufen. Weitere Informationen finden Sie unter Loopbackaufzeichnung.

Das flag AUDCLNT_STREAMFLAGS_EVENTCALLBACK ermöglicht ereignisgesteuertes Puffern. Wenn ein Client dieses Flag im Aufruf von IAudioClient::Initialize festlegt, der einen Stream initialisiert, muss der Client anschließend die IAudioClient::SetEventHandle-Methode aufrufen, um ein Ereignishandle für den Stream zur Verfügung zu stellen. Nachdem der Stream gestartet wurde, signalisiert die Audio-Engine das Ereignishandle, um den Client jedes Mal zu benachrichtigen, wenn ein Puffer für die Verarbeitung bereit ist. WASAPI unterstützt ereignisgesteuerte Pufferung sowohl für Rendering- als auch für Aufzeichnungspuffer. Sowohl Datenströme im freigegebenen Modus als auch im exklusiven Modus können ereignisgesteuerte Pufferung verwenden. Ein Codebeispiel, das das flag AUDCLNT_STREAMFLAGS_EVENTCALLBACK verwendet, finden Sie unter Datenströme im exklusiven Modus.

Das flag AUDCLNT_STREAMFLAGS_NOPERSIST deaktiviert die Persistenz des Volumes und stummschaltet einstellungen für eine Sitzung, die Renderingstreams enthält. Standardmäßig sind volume level and muting state for a rendering session persistent across application restarts. Die Volumeebene und der Stummschaltungszustand für eine Aufzeichnungssitzung sind nie persistent. Weitere Informationen zur Persistenz von Sitzungslautstärke und Stummschaltungseinstellungen finden Sie unter Audiositzungen.

Das AUDCLNT_STREAMFLAGS_RATEADJUST-Flag ermöglicht es einer Anwendung, einen Verweis auf die IAudioClockAdjustment-Schnittstelle abzurufen, die zum Festlegen der Abtastrate für den Stream verwendet wird. Um einen Zeiger auf diese Interace zu erhalten, muss eine Anwendung den Audioclient mit diesem Flag initialisieren und dann IAudioClient::GetService aufrufen, indem sie den IID_IAudioClockAdjustment-Bezeichner angibt. Um die neue Abtastrate festzulegen, rufen Sie IAudioClockAdjustment::SetSampleRate auf. Dieses Flag ist nur für ein Renderinggerät gültig. Andernfalls schlägt der GetService-Aufruf mit dem Fehlercode AUDCLNT_E_WRONG_ENDPOINT_TYPE fehl. Außerdem muss die Anwendung den ShareMode-Parameter während des Initialize-Aufrufs auf AUDCLNT_SHAREMODE_SHARED festlegen. SetSampleRate schlägt fehl, wenn sich der Audioclient nicht im freigegebenen Modus befindet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [Desktop-Apps | UWP-Apps]
Header
Audiosessiontypes.h

Siehe auch

Kernaudiokonstanten

IAudioCaptureClient-Schnittstelle

IAudioClient::GetService

IAudioClient::Initialize

IAudioClient::SetEventHandle