Partager via


Détermination de la prise en charge des formats non standard

[La fonctionnalité associée à cette page, Waveform Audio, est une fonctionnalité héritée. Il a été remplacé par WASAPI et Audio Graphs. Les graphiques WASAPI et Audio ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise WASAPI et Audio Graphs au lieu de Waveform Audio, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Pour voir si un appareil prend en charge un format particulier (standard ou non standard), vous pouvez appeler la fonction waveOutOpen avec l’indicateur WAVE_FORMAT_QUERY. L’exemple suivant utilise cette technique pour déterminer si un périphérique audio de forme d’onde prend en charge un format spécifié.

// 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 
} 

Cette technique pour déterminer la prise en charge du format non standard s’applique également aux périphériques d’entrée audio de forme d’onde. La seule différence est que la fonction waveInOpen est utilisée à la place de waveOutOpen pour interroger la prise en charge du format.

Pour déterminer si un format de données audio de forme d’onde particulier est pris en charge par l’un des appareils audio de forme d’onde d’un système, utilisez la technique illustrée dans l’exemple précédent, mais spécifiez la constante WAVE_MAPPER pour le paramètre uDeviceID .