Partager via


Définition des propriétés de capture audio

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, 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.]

Chaque broche d’entrée du filtre de capture audio expose l’interface IAMAudioInputMixer . Utilisez cette interface pour activer ou désactiver une entrée particulière, en appelant la méthode IAMAudioInputMixer::p ut_Enable sur la broche. Utilisez également cette interface pour définir les propriétés d’une entrée, telles que les niveaux de basses, d’aigus et de volume. Si vous capturez plusieurs entrées à la fois, vous pouvez contrôler les niveaux de basses, de aigus et de volume globaux via l’interface IAMAudioInputMixer sur le filtre lui-même.

Les taux d’échantillonnage disponibles et les formats audio pour la capture sont déterminés par le pilote. Utilisez l’interface IAMStreamConfig sur le code de sortie du filtre de capture audio pour énumérer les taux d’échantillonnage et les formats disponibles et définir le format souhaité. Le filtre peut se connecter en aval à n’importe quel filtre qui accepte le type de média de la broche de sortie.

Le filtre de capture audio expose également l’interface IAMBufferNegotiation . Cette interface est utile pour contrôler la latence dans la préversion audio. Par défaut, le filtre Capture audio utilise une taille de mémoire tampon d’une demi-seconde. Cette taille de mémoire tampon est optimale pour la capture, mais entraîne un délai d’aperçu d’une demi-seconde. Pour réduire la latence, appelez la méthode IAMBufferNegotiation::SuggestAllocatorProperties avant de connecter le code de sortie du filtre de capture audio. Cette méthode prend un pointeur vers la structure ALLOCATOR_PROPERTIES . Utilisez le membre cbBuffer pour spécifier la taille de la mémoire tampon, en octets. Une mémoire tampon de 80 millisecondes est généralement sûre, mais des mémoires tampons de 30 ou 40 millisecondes peuvent être suffisantes. Si les mémoires tampons sont trop petites, la qualité sonore sera dégradée.