CaptureSharedEventDriven
Cet exemple d’application utilise les API Core Audio pour capturer des données audio à partir d’un périphérique d’entrée spécifié par l’utilisateur et les écrire dans un fichier .wav nommé de manière unique dans le répertoire actif. Cet exemple illustre la mise en mémoire tampon pilotée par les événements.
Cette rubrique contient les sections suivantes.
- Description
- Configuration requise
- Téléchargement de l’exemple
- Génération de l’exemple
- Exécution de l'exemple
- Rubriques connexes
Description
Cet exemple illustre les fonctionnalités suivantes.
- API MMDevice pour l’énumération et la sélection d’appareils multimédias.
- WASAPI pour les opérations de gestion de flux telles que le démarrage et l’arrêt du flux et le basculement de flux.
Configuration requise
Produit | Version |
---|---|
SDK Windows | Windows 7 |
Visual Studio | 2008 |
Téléchargement de l’exemple
Cet exemple est disponible aux emplacements suivants.
Emplacement | Chemin/URL |
---|---|
Kit de développement logiciel (SDK) Windows | \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedEventDriven\... |
Génération de l'exemple
Pour générer l’exemple CaptureSharedEventDriven, procédez comme suit :
- Ouvrez l’interpréteur de commandes CMD pour le Kit de développement logiciel (SDK) Windows et accédez à l’exemple de répertoire CaptureSharedEventDriven.
- Exécutez la commande
start WASAPICaptureSharedEventDriven.sln
dans le répertoire CaptureSharedEventDriven pour ouvrir le projet WASAPICaptureSharedEventDriven dans la fenêtre Visual Studio. - Dans la fenêtre, sélectionnez la configuration de la solution Déboguer ou Libérer , sélectionnez le menu Générer dans la barre de menus, puis sélectionnez l’option Générer . Si vous n’ouvrez pas Visual Studio à partir de l’interpréteur de commandes CMD pour le Kit de développement logiciel (SDK), Visual Studio n’aura pas accès à l’environnement de génération du KIT de développement logiciel (SDK). Dans ce cas, l’exemple ne sera généré que si vous définissez explicitement la variable d’environnement MSSdk, qui est utilisée dans le fichier projet, WASAPICaptureSharedEventDriven.vcproj.
Exécution de l'exemple
Si vous générez correctement l’application de démonstration, un fichier exécutable, WASAPICaptureSharedEventDriven.exe, est généré. Pour l’exécuter, tapez WASAPICaptureSharedEventDriven
dans une fenêtre de commande suivie des arguments obligatoires ou facultatifs. L’exemple suivant montre comment exécuter l’exemple en spécifiant la durée de capture sur l’appareil multimédia par défaut.
WASAPICaptureSharedEventDriven.exe -d 20 -multimedia
Le tableau suivant présente les arguments.
Argument | Description |
---|---|
-? | Affiche de l’aide. |
-H | Affiche de l’aide. |
-l | Latence de capture audio en millisecondes. |
-d | Durée de la capture audio en secondes. |
-M | Désactive l’utilisation de MMCSS. |
-Console | Utilisez l’appareil console par défaut. |
-Communications | Utilisez le périphérique de communication par défaut. |
-Multimédia | Utilisez l’appareil multimédia par défaut. |
-Terminaison | Utilisez l’identificateur de point de terminaison spécifié dans la valeur de commutateur. |
Si l’application est exécutée sans arguments, elle énumère les appareils disponibles et invite l’utilisateur à sélectionner un appareil pour la session de capture. Les appareils de console, de communication et multimédia par défaut sont répertoriés, suivis des appareils et des identificateurs de point de terminaison. Si aucune durée n’est spécifiée, le flux audio de l’appareil spécifié est capturé pendant 10 secondes. L’application écrit les données capturées dans un fichier .wav nommé de manière unique.
CaptureSharedEventDriven illustre la mise en mémoire tampon pilotée par les événements. Le client audio instancié pour cet exemple est configuré pour s’exécuter en mode partagé et le traitement par le client de la mémoire tampon audio est effectué en définissant l’indicateur AUDCLNT_STREAMFLAGS_EVENTCALLBACK dans l’appel sur IAudioClient::Initialize. L’exemple montre comment le client doit fournir un handle d’événement au système en appelant la méthode IAudioClient::SetEventHandle . Une fois la session de capture démarrée et le flux démarré, le moteur audio signale au handle d’événement fourni d’avertir le client chaque fois qu’une mémoire tampon est prête pour le traitement du client. Les données audio peuvent également être traitées dans une boucle pilotée par le minuteur. Ce mode est démostégré dans l’exemple CaptureSharedTimerDriven .
Rubriques connexes