IAudioClient::GetMixFormat-Methode (audioclient.h)
Die GetMixFormat-Methode ruft das Streamformat ab, das die Audio-Engine für die interne Verarbeitung von Datenströmen im freigegebenen Modus verwendet.
Syntax
HRESULT GetMixFormat(
[out] WAVEFORMATEX **ppDeviceFormat
);
Parameter
[out] ppDeviceFormat
Zeiger auf eine Zeigervariable, in die die Methode die Adresse des Mixformats schreibt. Dieser Parameter muss ein gültiger Nicht-NULL-Zeiger auf eine Zeigervariable sein. Die -Methode schreibt die Adresse einer WAVEFORMATEX-Struktur (oder WAVEFORMATEXTENSIBLE) in diese Variable. Die -Methode weist den Speicher für die Struktur zu. Der Aufrufer ist für das Freigeben des Speichers verantwortlich, wenn er nicht mehr benötigt wird, indem er die CoTaskMemFree-Funktion aufruft . Wenn der GetMixFormat-Aufruf fehlschlägt, ist *ppDeviceFormatNULL. Informationen zu WAVEFORMATEX, WAVEFORMATEXTENSIBLE und CoTaskMemFree finden Sie in der Dokumentation zum Windows SDK.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.
Rückgabecode | Beschreibung |
---|---|
|
Das Audioendpunktgerät wurde getrennt, oder die Audiohardware oder die zugehörigen Hardwareressourcen wurden neu konfiguriert, deaktiviert, entfernt oder anderweitig für die Verwendung nicht verfügbar gemacht. |
|
Der Windows-Audiodienst wird nicht ausgeführt. |
|
Der Parameter ppDeviceFormat ist NULL. |
|
Nicht genügend Arbeitsspeicher. |
Hinweise
Der Client kann diese Methode aufrufen, bevor er die IAudioClient::Initialize-Methode aufruft . Beim Erstellen eines Datenstroms im freigegebenen Modus für ein Audioendpunktgerät akzeptiert die Initialize-Methode immer das Streamformat, das von einem GetMixFormat-Aufruf auf demselben Gerät abgerufen wurde.
Das Mixformat ist das Format, das die Audio-Engine intern für die digitale Verarbeitung von Datenströmen im freigegebenen Modus verwendet. Dieses Format ist nicht unbedingt ein Format, das das Audioendpunktgerät unterstützt. Daher ist es dem Aufrufer möglicherweise nicht erfolgreich, einen Datenstrom im exklusiven Modus mit einem Format zu erstellen, das durch aufrufen von GetMixFormat abgerufen wird.
Um beispielsweise die digitale Audioverarbeitung zu erleichtern, kann die Audio-Engine ein Mixformat verwenden, das Beispiele als Gleitkommawerte darstellt. Wenn das Gerät nur ganzzahlige PCM-Beispiele unterstützt, konvertiert das Modul die Beispiele bei der Verbindung zwischen dem Gerät und dem Modul in oder aus ganzzahligen PCM-Werten. Um eine erneute Entnahme zu vermeiden, kann die Engine jedoch ein Mixformat mit einer vom Gerät unterstützten Samplerate verwenden.
Rufen Sie die IAudioClient::IsFormatSupported-Methode auf, um zu bestimmen, ob die Initialize-Methode einen Stream im freigegebenen Modus oder im exklusiven Modus mit einem bestimmten Format erstellen kann.
An sich kann eine WAVEFORMATEX-Struktur die Zuordnung von Kanälen zu Sprecherpositionen nicht angeben. Darüber hinaus gibt WAVEFORMATEX zwar die Größe des Containers für jedes Audiobeispiel an, kann aber nicht die Anzahl der Bits an Genauigkeit in einem Beispiel angeben (z. B. 20 Bits genauigkeit in einem 24-Bit-Container). Die WAVEFORMATEXTENSIBLE-Struktur kann jedoch sowohl die Zuordnung von Kanälen zu Lautsprechern als auch die Anzahl der Genauigkeitsbits in jedem Beispiel angeben. Aus diesem Grund ruft die GetMixFormat-Methode einen Formatdeskriptor ab, der in Form einer WAVEFORMATEXTENSIBLE-Struktur anstelle einer eigenständigen WAVEFORMATEX-Struktur vorliegt. Über den ppDeviceFormat-Parameter gibt die Methode einen Zeiger auf die WAVEFORMATEX-Struktur aus, die am Anfang dieser WAVEFORMATEXTENSIBLE-Struktur eingebettet ist. Weitere Informationen zu WAVEFORMATEX und WAVEFORMATEXTENSIBLE finden Sie in der Windows DDK-Dokumentation.
Weitere Informationen zur GetMixFormat-Methode finden Sie unter Geräteformate. Codebeispiele, die GetMixFormat aufrufen, finden Sie in den folgenden Themen:
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | audioclient.h |