Partager via


RenderSharedTimerDriven

Cet exemple d’application utilise les API Core Audio pour restituer des données audio sur un appareil 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 partagé. Pour un flux en mode partagé, le client partage la mémoire tampon de point de terminaison avec le moteur audio.

Cette rubrique contient les sections suivantes.

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.

Exigences

Produit Version
sdk Windows Windows 7
Visual Studio 2008

 

Téléchargement de l’exemple

Cet exemple est disponible dans les emplacements suivants.

Emplacement Chemin/URL
Kit de développement logiciel (SDK) Windows \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\RenderSharedTimerDriven\...

 

Génération de l’exemple

Pour générer l’exemple RenderSharedTimerDriven, procédez comme suit :

  1. Ouvrez l’interpréteur de commandes CMD pour le Kit de développement logiciel (SDK) Windows et passez au répertoire d’exemple RenderSharedTimerDriven.
  2. Exécutez la commande start WASAPIRenderSharedTimerDriven.sln dans le répertoire RenderSharedTimerDriven pour ouvrir le projet WASAPIRenderSharedTimerDriven dans la fenêtre Visual Studio.
  3. Dans la fenêtre, sélectionnez le de débogage ou configuration de la solution Release, sélectionnez le menu build 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 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, WASAPIRenderSharedTimerDriven.vcproj.

Exécution de l’exemple

Si vous générez l’application de démonstration avec succès, un fichier exécutable, WASAPIRenderSharedTimerDriven.exe, est généré. Pour l’exécuter, tapez WASAPIRenderSharedTimerDriven dans une fenêtre de commande suivie d’arguments obligatoires ou facultatifs. L’exemple suivant montre comment exécuter l’exemple en spécifiant la durée de lecture sur l’appareil multimédia par défaut.

WASAPIRenderSharedTimerDriven.exe -d 20 -multimedia

Le tableau suivant présente les arguments.

Argument Description
-? Affiche l’aide.
-h Affiche l’aide.
-f Fréquence d’onde sinusoïque 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.
-consoler Utilisez l’appareil de console par défaut.
-communications Utilisez l’appareil de communication par défaut.
-multimédia Utilisez l’appareil multimédia par défaut.
-extrémité 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 l’utilisateur spécifié un appareil, l’application restitue une vague de sinus à 440 Hz pendant 10 secondes. Ces valeurs peuvent être modifiées en spécifiant -f et -d valeurs de commutateur.

RenderSharedTimerDriven illustre la mise en mémoire tampon pilotée par le minuteur. Dans ce mode, le client doit attendre une période de temps (la moitié de la latence, spécifiée par la valeur de commutateur -d, en millisecondes). Lorsque le client se réveille, à mi-chemin dans la période de traitement, il extrait le prochain ensemble d’échantillons 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 à afficher 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 RenderSharedEventDriven.

Pour plus d’informations sur le rendu d’un flux, consultez Rendu d’un flux.

exemples de sdk qui utilisent les API audio principales