2 votes

microphone virtuel : Fichier -> Microphone -> Application

J'ai besoin de déboguer mon programme et j'ai besoin de quelque chose comme un logiciel virtuel. virtuel. Je voudrais un périphérique "microphone" où je peux mettre un fichier son et ce fichier sera l'entrée du flux du microphone. ce fichier sera l'entrée du flux du microphone. Et dans l'application, j'obtiens ceci flux provenant de ce "microphone"

Fichier -> Microphone -> Application

est-ce possible ?

quelque chose comme la commande bash devrait être très utile :

aplay --device=mic my_microphone.wav pour gérer un flux de microphones

0voto

bobby R Points 1

Il manque quelques détails à votre question, comme le langage de programmation ou le serveur de son que vous utilisez. Je vais tout de même essayer.

J'ai utilisé avec succès le démon JACK ( jackd ) pour déboguer une application audio. Cela peut demander un peu de travail pour obtenir jackd à travailler, mais cela en vaut la peine. Il s'agit d'un serveur sonore sur lequel les applications et le matériel audio peuvent enregistrer des ports d'entrée et de sortie audio. Vous pouvez alors utiliser qjackctl pour connecter ces ports, soit manuellement en utilisant Connecter o automatiquement en utilisant le Patchbay .

Les étapes à suivre :

  • installer jackd et qjackctl
  • en supposant que vous utilisiez ALSA, ajoutez un dispositif jack à votre ~/.asoundrc pour que vous puissiez sortir vers le serveur jack (voir ci-dessous)
  • commencer qjackctl et de l'intérieur, commencez jackd (c'est peut-être à ce moment-là que vous rencontrez des problèmes - dans mon installation audio assez complexe, j'ai dû déplacer pulseaudio hors du chemin)
  • lire votre fichier son en utilisant aplay --device=jack my_microphone.wav et essayez de le connecter à votre carte son - lorsque vous entendez quelque chose, vous avez presque terminé
  • créer un nouveau port d'entrée JACK à l'aide de la fonction API JACK
  • 使い道 jackd 's Patchbay pour connecter automatiquement votre nouveau port d'entrée à un port de sortie audio JACK (qui peut être la sortie de aplay un lecteur multimédia utilisant JACK (qmmp, VLC et autres) ou votre carte son)

Voici la partie pertinente de mon ~/.asoundrc

pcm.jack
{
        type plug
        slave.pcm "jack_output"
        hint
        {
                show on
                description "Alsa (JACK plugin)"
        }
}

pcm.jack_output
{
        type jack
        playback_ports
        {
                0 system:playback_1
                1 system:playback_2
        }
        capture_ports
        {
                0 system:capture_1
                1 system:capture_2
        }
        hint
        {
                show off
                description "Alsa (JACK output)"
        }
}

0voto

bobby R Points 1

Vous pouvez également incorporer GStreamer dans votre demande. Voir aussi ici pour une brève introduction et ici pour un tutoriel. L'élément appsink peut être ce que vous recherchez.

Voici quelques exemples en ligne de commande. Il existe également une API complète qui vous permet d'appeler tout (ou partie) de ces fonctions à partir de votre application.

Lecture d'un bruit rose sur votre sortie audio par défaut :

gst-launch-0.10 audiotestsrc wave=6 ! autoaudiosink

Lecture d'un fichier MP3 (ou d'un autre format pris en charge) sur votre sortie audio par défaut :

gst-launch-0.10 filesrc location=my_microphone.mp3 ! decodebin ! \
  audioconvert ! autoaudiosink

GStreamer est génial, alors ne me blâmez pas si vous commencez à réécrire toute votre application en utilisant GStreamer... :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X