Question

Quelqu'un sait-il comment capturer par programmation le son en cours de lecture (c'est-à-dire tout ce qui provient de la carte son, pas les périphériques d'entrée tels qu'un microphone).

Était-ce utile?

La solution

En supposant que vous parlez de Windows, il existe essentiellement trois façons de procéder.

La première consiste à ouvrir la sortie principale du périphérique audio en tant que source d’enregistrement. Ceci n'est possible que lorsque le conducteur le prend en charge, bien que la plupart le fassent de nos jours. Les noms courants du périphérique virtuel sont "Ce que vous entendez". ou "Wave Out". Vous devrez utiliser une API appropriée (voir WaveIn ou DirectSound dans MSDN) pour effectuer la capture.

La deuxième méthode consiste à écrire un pilote de filtre capable d'intercepter le flux audio avant qu'il n'atteigne le périphérique physique. Encore une fois, cette technique ne fonctionnera que pour les périphériques dotés d'une topologie de pilote appropriée et certainement pas pour les âmes sensibles.

Cela signifie qu'aucune de ces options ne fonctionnera sur un PC avec du matériel arbitraire.

La dernière solution consiste à utiliser un périphérique audio virtuel, tel que le câble audio virtuel . Si cet appareil est défini comme appareil de lecture par défaut dans Windows, toutes les applications bien comportées y joueront. Vous pouvez ensuite enregistrer à partir du même appareil pour capturer la sortie cumulée. Tant que vous avez le contrôle sur le périphérique utilisé par l'application que vous souhaitez enregistrer, cette option fonctionnera toujours.

Toutes ces techniques ont leurs avantages et leurs inconvénients - à vous de décider laquelle vous conviendrait le mieux.

Autres conseils

Vous pouvez utiliser l'interface audio Waveform, un article MSDN sur comment y accéder par PInvoke.

Pour capturer le son en cours de lecture, il vous suffit d’ouvrir le périphérique de lecture au lieu du microphone. Ouvert pour entrée, bien sûr, pas pour sortie; -)

Si vous utilisiez OSX, Audio Hijack Pro de Rogue Amoeba est probablement le moyen le plus simple.

Quoi qu'il en soit, pourquoi ne pas simplement ré-enregistrer votre audio dans votre ligne et l’enregistrer? C’est une solution très simple très . Branchez simplement un câble dans votre prise de sortie audio et votre prise d’entrée ligne et démarrez l’enregistrement.

Vous devez activer le mixage stéréo de périphérique. Si vous faites cela, le son direct trouvera cet appareil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top