2008-09-21 6 views
4

Comment serait-il possible de capturer l'audio par programme? Je suis en train de mettre en place une application qui diffuse en temps réel le bureau sur le réseau. La partie vidéo est terminée. J'ai besoin de mettre en place la partie audio. J'ai besoin d'un moyen d'obtenir des données PCM de la carte son pour alimenter mon encodeur (implémenté en utilisant Windows Media Format).Comment capturer des données PCM à partir de la sortie d'onde

Je pense que la réponse est liée aux fonctions openMixer(), waveInOpen() dans l'API Win32, mais je ne suis pas sûr de ce que je devrais faire. Comment ouvrir le canal nécessaire et comment lire les données PCM de celui-ci?

Comment ouvrir le canal nécessaire et comment y lire les données PCM?

Merci d'avance.

Répondre

4

Je ne pense pas qu'il existe un moyen direct de faire cela en utilisant le système d'exploitation - c'est une fonctionnalité qui peut (ou peut ne pas) être présente sur la carte son. Certaines cartes son ont une interface de bouclage - Creative l'appelle "What U Hear". Vous sélectionnez simplement ceci comme l'entrée plutôt que le microphone, et enregistrez en utilisant le waveInOpen() normal que vous connaissez déjà.

Si la carte son n'a pas cette fonctionnalité, alors je pense que vous n'avez pas de chance si vous faites quelque chose de fou comme faire votre propre pilote. Ou vous pouvez convaincre vos utilisateurs d'exécuter un câble de la sortie du haut-parleur à l'entrée de ligne :)

7

Les nouvelles API Windows Vista Core Audio en ont explicitement le support (appelée Loopback Recording), donc si vous pouvez vivre avec un Vista seule application c'est la voie à suivre.

Consultez l'article Loopback Recording sur MSDN pour savoir comment faire.

+1

L'URL correcte est http://msdn.microsoft.com/en-us/library/ms679146(VS.85).aspx –

+0

Merci Oliver, j'ai également mis à jour le lien dans le message. –

Questions connexes