RenderExclusiveTimerDriven
Cet exemple d’application utilise les API Core Audio pour restituer des données audio sur un périphérique de sortie spécifié par l’utilisateur. Cet exemple illustre la mise en mémoire tampon pilotée par le minuteur pour un client de rendu en mode exclusif. Pour un flux en mode exclusif, le client partage la mémoire tampon du point de terminaison avec le périphérique audio.
Cette rubrique contient les sections suivantes.
- Description
- Configuration requise
- Téléchargement de l’exemple
- Génération de l’exemple
- Afficher les exemples de fichiers
- 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.
Spécifications
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\RenderExclusiveTimerDriven\... |
Génération de l'exemple
Pour générer l’exemple RenderExclusiveTimerDriven, 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 RenderExclusiveTimerDriven.
- Exécutez la commande
start WASAPIRenderExclusiveTimerDriven.sln
dans le répertoire RenderExclusiveTimerDriven pour ouvrir le projet WASAPIRenderExclusiveTimerDriven dans la fenêtre Visual Studio. - Dans la fenêtre, sélectionnez la configuration de la solution Déboguer ou Mettre en production , 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 SDK, Visual Studio n’aura pas accès à l’environnement de génération du SDK. Dans ce cas, l’exemple ne sera pas généré, sauf si vous définissez explicitement la variable d’environnement MSSdk, qui est utilisée dans le fichier projet WASAPIRenderExclusiveTimerDriven.vcproj.
Afficher les exemples de fichiers
Si vous générez correctement l’application de démonstration, un fichier exécutable, WASAPIRenderExclusiveTimerDriven.exe, est généré. Pour l’exécuter, tapez WASAPIRenderExclusiveTimerDriven
dans une fenêtre de commande suivie des arguments obligatoires ou facultatifs. L’exemple suivant montre comment exécuter l’exemple en spécifiant une durée de lecture sur l’appareil de console par défaut.
WASAPIRenderExclusiveTimerDriven.exe -d 20 -console
Le tableau suivant présente les arguments.
Argument | Description |
---|---|
-? | Affiche de l’aide. |
-H | Affiche de l’aide. |
-f | Fréquence d’onde sinusoïdale en Hz. |
-l | Latence de rendu audio en millisecondes. |
-d | Durée de l’onde sinus en secondes. |
-M | Désactive l’utilisation de MMCSS. |
-Console | Utilisez l’appareil de 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 du 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 rendu. Une fois que l’utilisateur a spécifié un appareil, l’application restitue une onde sinusoïdale à 440 Hz pendant 10 secondes. Ces valeurs peuvent être modifiées en spécifiant les valeurs de commutateur -f et -d.
RenderExclusiveTimerDriven illustre la mise en mémoire tampon pilotée par le minuteur. Dans ce mode, le client doit attendre un certain temps (la moitié de la latence, spécifiée par la valeur de commutateur -d, en millisecondes). Lorsque le client se réveille, à la moitié de la période de traitement, il extrait l’ensemble d’échantillons suivant du moteur. Avant chaque passe de traitement dans la boucle de mise en mémoire tampon, le client doit déterminer la quantité de données à restituer afin que les données ne dépassent pas la mémoire tampon.
Les données audio à lire sur l’appareil spécifié peuvent être traitées en activant la mise en mémoire tampon pilotée par les événements. Ce mode est illustré dans l’exemple RenderExclusiveTimerDriven.
Pour plus d’informations sur le rendu d’un flux, consultez Rendu d’un flux.
Rubriques connexes