3 votes

Comment jouer/enregistrer du son à partir de Debian chroot ?

Il y a un gros fichier avec ext2 avec ARM Debian où je peux chrooter.

Il y a un mplayer fonctionnel (je peux -ao pcm ou -vo yuv4mpegpipe) là-bas.

Comment enregistrer/lire du son (ou de la vidéo) à partir de ce Debian? Y a-t-il des choses qui émulent ALSA/OSS/Whatever pour utiliser des programmes linux habituels et des programmes android côte à côte? Peut-être qu'il y a un serveur pulseaudio pour android?

2voto

Flame Points 1138

J'ai réussi à le faire fonctionner en écrivant sur /dev/msm_pcm_out :

mplayer something.mp3 -ao pcm:file=/dev/msm_pcm_out

Le son est saccadé et ça semble bricolé en général.

La sortie vidéo est quelque chose comme -vo fbdev:/dev/graphics/fb0.

1voto

Tous les Androids peuvent ne pas avoir un périphérique de sortie PCM dans /dev, comme l'exige la réponse de Vi0.

Une solution plus générale consiste à configurer Pulse pour diffuser l'audio système vers un port TCP sur votre appareil. Ensuite, vous pouvez utiliser Simple Protocol Player ou PulseDroid dans votre environnement Android pour lire le flux.

Pour éliminer les coupures/délais dans VLC, MPlayer et Audacity, il était nécessaire pour moi de choisir ALSA comme périphérique de sortie et Pulse comme mixeur (dans les options de ces programmes).

Étapes que j'ai utilisées sur mon Amazon Fire 7" 2015 / CM12 / Debian Wheezy chroot:

  1. Installer pulseaudio dans le chroot : sudo apt-get install pulseaudio.
  2. Comme suggéré par un commentaire sur le github de meefik, j'ai supprimé la ligne load-module module-console-kit du fichier /etc/pulse/default.pa.
  3. Exécuter pactl list | grep 'Name\|Description' et identifier un module qui surveille l'audio système. J'ai utilisé avec succès 'Dummy Output Monitor' nommé auto_null.monitor.
  4. Écrire un script shell correspondant pashare comme suit (crédit à AlexAndersan sur SuperUser):

    !/bin/sh

    case "$1" in start) $0 stop pulseaudio --start pactl load-module module-simple-protocol-tcp rate=44100 format=s16le channels=2 source=auto_null.monitor record=true port=8000 ;; stop) killall pulseaudio pactl unload-module pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g' ;; *) echo "Usage: $0 start|stop" >&2 ;; esac

Assurez-vous que les arguments rate et port correspondent à vos paramètres dans Simple Protocol Player (du côté Android). PulseDroid demande rate=48000, ce qui signifie un débit plus élevé, et pourrait éventuellement introduire des coupures/délais.

J'ai ajouté les lignes pulseaudio --start et killall car pulse ne se lançait pas automatiquement dans mon chroot.

  1. Rendre le script exécutable et l'exécuter :

    chmod 755 pashare sudo mv pashare /usr/local/bin/ pashare start

  2. Configurer vos lecteurs multimédias chroot pour une sortie vers ALSA, avec mixeur Pulse. J'ai dû le configurer manuellement, pour éliminer l'audio haché :

    • VLC : Dans Outils->Préférences->Audio, définissez Module de sortie : sortie audio ALSA, et Périphérique : Lecture/enregistrement via le serveur audio PulseAudio.

    • GNOME MPlayer : Dans Édition->Préférences->Lecteur, définissez Sortie audio : ALSA.

  3. Sur Android, lancez Simple Protocol Player ou PulseDroid sur l'adresse IP 127.0.0.1 (bouclage) et configurez l'autre(s) option(s) pour correspondre à votre script pashare.

Remarquez qu'Android traite l'application comme un lecteur de musique, et la tuera si une autre application tente de jouer de la musique, ou si elle décide de libérer le CPU. Il y a probablement des solutions de contournement pour cela.

0 votes

S'agit-il uniquement de jouer ou aussi d'enregistrer?

0 votes

@Vi0, cela a également fonctionné pour l'enregistrement [limité] dans le chroot... il vous suffit de sélectionner ALSA dans la liste déroulante d'entrée d'Audacity. Il enregistrera tout ce qui est diffusé via alsa.

1 votes

J'ai eu des problèmes avec par exemple Freeciv en utilisant cette réponse, car il utilise SDL pour l'audio qui semble sélectionner automatiquement le pilote pulse (pas alsa), et il n'y a pas moyen de le configurer sans recompiler.....

androidalle.com

AndroidAlle est une communauté de androiders 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