Freigeben über


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.