Ermitteln der Nichtstandardformatunterstützung
[Das dieser Seite zugeordnete Feature Waveform Audio ist ein Legacyfeature. Es wurde von WASAPI und Audio Graphs abgelöst. WASAPI- und Audiographen wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit WASAPI - und Audiographen anstelle von Waveform Audio verwenden sollte. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Um zu sehen, ob ein Gerät ein bestimmtes Format (Standard oder Nichtstandard) unterstützt, können Sie die waveOutOpen-Funktion mit dem flag WAVE_FORMAT_QUERY aufrufen. Im folgenden Beispiel wird dieses Verfahren verwendet, um zu bestimmen, ob ein Waveform-Audiogerät ein angegebenes Format unterstützt.
// Determines whether the specified waveform-audio output device
// supports a specified waveform-audio format. Returns
// MMSYSERR_NOERROR if the format is supported, WAVEERR_BADFORMAT if
// the format is not supported, and one of the other MMSYSERR_ error
// codes if there are other errors encountered in opening the
// specified waveform-audio device.
MMRESULT IsFormatSupported(LPWAVEFORMATEX pwfx, UINT uDeviceID)
{
return (waveOutOpen(
NULL, // ptr can be NULL for query
uDeviceID, // the device identifier
pwfx, // defines requested format
NULL, // no callback
NULL, // no instance data
WAVE_FORMAT_QUERY)); // query only, do not open device
}
Diese Technik zum Ermitteln der Unterstützung von nicht standardmäßigen Formaten gilt auch für Waveform-Audio-Eingabegeräte. Der einzige Unterschied besteht darin, dass die waveInOpen-Funktion anstelle von waveOutOpen verwendet wird, um die Formatunterstützung abzufragen.
Um zu bestimmen, ob ein bestimmtes Waveform-Audio-Datenformat von einem der Waveform-Audio-Geräte in einem System unterstützt wird, verwenden Sie die im vorherigen Beispiel veranschaulichte Technik, geben Sie jedoch die WAVE_MAPPER Konstante für den uDeviceID-Parameter an.