Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die GetMixFormat-Methode ruft das Datenstromformat ab, das das Audiomodul für die interne Verarbeitung von Datenströmen im freigegebenen Modus verwendet.
Syntax
HRESULT GetMixFormat(
[out] WAVEFORMATEX **ppDeviceFormat
);
Die Parameter
[out] ppDeviceFormat
Zeigen Sie 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 (oder WAVEFORMATEXTENSIBLE)-Struktur 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 die CoTaskMemFree-Funktion aufgerufen wird. Wenn der GetMixFormat-Aufruf fehlschlägt, ist *ppDeviceFormatNULL. Informationen zu WAVEFORMATEX, WAVEFORMATEXTENSIBLE und CoTaskMemFree finden Sie in der Windows SDK-Dokumentation.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, enthalten mögliche Rückgabecodes, sind jedoch nicht beschränkt auf die in der folgenden Tabelle gezeigten Werte.
| Rückgabecode | Description |
|---|---|
|
Das Audioendpunktgerät wurde nicht angeschlossen, oder die Audiohardware oder die zugehörigen Hardwareressourcen wurden neu konfiguriert, deaktiviert, entfernt oder anderweitig nicht zur Verwendung verfügbar gemacht. |
|
Die Ressourcen des Datenstroms wurden ungültig. Dieser Fehler kann aus den folgenden Gründen ausgelöst werden: – Der Datenstrom wird angehalten. – Ein exklusiver oder Offload-Datenstrom wird getrennt. – Eine verpackte Anwendung mit einem exklusiven Modus oder Offload-Stream wird stillgeschützt. - Ein "geschützter Ausgabedatenstrom" wird geschlossen. |
|
Der Windows-Audiodienst wird nicht ausgeführt. |
|
Der Parameter ppDeviceFormat ist NULL. |
|
Nicht genügend Arbeitsspeicher. |
Bemerkungen
Der Client kann diese Methode aufrufen, bevor die IAudioClient::Initialize-Methode aufgerufen wird . Beim Erstellen eines Datenstroms für einen Audioendpunkt akzeptiert die Initialize-Methode immer das Streamformat, das von einem GetMixFormat-Aufruf auf demselben Gerät abgerufen wurde.
Das Mixformat ist das Format, das das Audiomodul intern für die digitale Verarbeitung von Datenströmen im gemeinsam genutzten Modus verwendet. Dieses Format ist nicht unbedingt ein Format, das vom Audioendpunktgerät unterstützt wird. Daher ist der Aufrufer möglicherweise nicht erfolgreich, einen Exklusivmodusdatenstrom mit einem Format zu erstellen, das durch Aufrufen von GetMixFormat abgerufen wird.
Um beispielsweise die digitale Audioverarbeitung zu erleichtern, kann das Audiomodul ein Mixformat verwenden, das Beispiele als Gleitkommawerte darstellt. Wenn das Gerät nur ganzzahlige PCM-Beispiele unterstützt, konvertiert das Modul die Beispiele in oder aus ganzzahligen PCM-Werten an der Verbindung zwischen dem Gerät und dem Modul. Um jedoch das Resampling zu vermeiden, verwendet das Modul möglicherweise ein Mixformat mit einer Samplerate, die das Gerät unterstützt.
Rufen Sie die IAudioClient::IsFormatSupported-Methode auf, um zu bestimmen, ob die Initialize-Methode einen Datenstrom im gemeinsam genutzten Modus oder exklusivmodus mit einem bestimmten Format erstellen kann.
Selbst kann eine WAVEFORMATEX-Struktur die Zuordnung von Kanälen zu Sprecherpositionen nicht angeben. Obwohl WAVEFORMATEX die Größe des Containers für jedes Audiobeispiel angibt, kann die Anzahl der Genauigkeitsbits in einem Beispiel nicht angegeben werden (z. B. 20 Bit 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 sich in Form einer WAVEFORMATEXTENSIBLE-Struktur anstelle einer eigenständigen WAVEFORMATEX-Struktur befindet. Durch 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 Device Formats. Codebeispiele, die GetMixFormat aufrufen, finden Sie in den folgenden Themen:
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows Vista [Desktop-Apps | UWP-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
| Zielplattform | Fenster |
| Header | audioclient.h |