web-dev-qa-db-fra.com

Comment utiliser le téléphone Android 2.1 en tant que récepteur audio distant?

J'ai un téléphone HTC Hero Android inutilisé (sous Android OS 2.1), je souhaite le connecter à un amplificateur audio et le laisser connecté pendant des mois afin que je puisse utiliser ce téléphone Android. comme serveur/récepteur pulseaudio distant/etc.

Il existe une application "Audio distant" disponible sur Android Market, qui peut récupérer le flux depuis/dev/dsp./dev/dsp a été désactivé par erreur/quelle que soit la raison sous ubuntu 10.10 et même après l'avoir activée selon ce fil - après avoir suivi ces instructions = cela n'a pas aidé, donc quand je clique sur le bouton Lecture/Pause sur mon Android - rien ne se passe vraiment et mpg123 song.mp3 utilise toujours les haut-parleurs de mon ordinateur portable. dernier | head même ne montre pas ce nouvel utilisateur en train de se connecter (je suppose qu'il devrait apparaître ici?)

En recherchant "pulseaudio", j'ai trouvé Airbubble sur le marché Android, mais le message "ne fonctionne pas avec RaopX sur MacOS X et le module raop de pulseaudio sous Linux." (c)

Existe-t-il donc un moyen d'utiliser le téléphone Android comme récepteur audio distant, idéalement non limité à la lecture de MP3/musique - mais au sous-système Son en général?

Je ne suis sûrement pas le seul à vouloir diffuser de la musique sur le téléphone Android via une connexion Wi-Fi pour l'écouter sur des haut-parleurs appropriés.

21
user35834

Je pense que vous surestimez votre idée en essayant de faire en sorte que votre téléphone fasse quelque chose pour lequel il n'a jamais été conçu (connectez-vous à PulseAudio ou quelque chose de plus bas niveau encore). Faites votre ordinateur faire le travail difficile.

Je suggérerais d'utiliser quelque chose comme Icecast ( tutorial here ) et d'utiliser l'une des 30 applications étranges pour Android pouvant le diffuser.

13
Oli

Il y a deux jours, je suis tombé sur cette question et je n'ai pas bien compris. Finalement, j'ai lu dans le manuel AirBubble que RAOP n'est pas pris en charge.

Je l'ai finalement résolu avec les capacités DLNA/UPnP de Pulseaudio. Cela fonctionne comme vous vous en doutez. Vous jouez du son avec n'importe quelle application avec une sortie pulseaudio sur votre boîte et sélectionnez la sortie en streaming à chaque fois que vous souhaitez la rediriger vers votre appareil Android.

Tout d'abord, installez Rygel:

$ Sudo apt-get install rygel rygel-preferences rygel-gst-launch

Puis modifiez le fichier /etc/rygel.conf pour que la ligne avec le paramètre enable-transcoding ressemble à ceci:

enable-transcoding=false

Puis chargez les modules DLNA et TCP et lancez rygel:

$ pactl load-module module-http-protocol-tcp
$ pactl load-module module-rygel-media-server 
$ pactl load-module module-null-sink sink_name=upnp format=s16be channels=2 rate=44100 sink_properties="device.description='DLNA/UPnP Streaming' device.bus='network' device.icon_name='network-server'"
$ rygel

Sur votre appareil Android, téléchargez l'application BubbleUPnP. Vos périphériques de sortie pulseaudio seront répertoriés sous le serveur "Son sur% HOSTNAME%". Dirigez la sortie de votre ordinateur vers le périphérique DLNA dans les préférences audio. Sélectionnez la même sortie dans BubbleUPnP.

N'oubliez pas que BubbleUPnP diffuse gratuitement les 30 premières minutes. La version complète coûte 3,49 €, mais je suppose que ça vaut le prix. Je n'ai eu aucune autre application pour travailler pour moi.

Enfin, vous pouvez désactiver le navigateur multimédia si vous ne l'aimez pas avec les préférences de rygel:

$ rygel-preferences

Un autre heads-up: il diffuse directement les données LPCM brutes, qui sont constamment ~ 250 ko/s. Toute activité parasite dans le réseau local sans fil provoquera un bégaiement si vous êtes sur un réseau autre que 802.11 n. Si vous envisagez de baser vos solutions de divertissement sur la diffusion en continu sans fil, envisagez l’achat d’un routeur sans fil n.

SUIVI: TRANSCODAGE

Pour réduire la surcharge du réseau et le bégaiement (ce qui se produira sauf si vous êtes sur un réseau 802.11 n), il est possible de passer au transcodage du flux audio au format MP3.

Collez ceci dans ~/.config/rygel.conf

[GstLaunch]
enabled=true
launch-items=mypulseaudiosink
mypulseaudiosink-title=Sound on @HOSTNAME@
mypulseaudiosink-mime=audio/mpeg
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! lamemp3enc target=quality quality=6

Utilisez le service DLNA "Gst Launch" qui apparaîtra au démarrage de rygel.

SUIVI 2: FLAC

LAME peut causer jusqu'à 2 minutes (!) De retard. Le format FLAC, quant à lui, est assez rapide, normalement inférieur à une seconde. Modifiez les lignes dans l'exemple ci-dessus pour:

mypulseaudiosink-mime=audio/flac
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc quality=8

Cela réduit le flux à environ 100 Ko/s, ce qui permet une lecture fluide sur la plupart des réseaux 802.11g avec plusieurs utilisateurs. Je l'ai testé en téléchargeant un torrent. À vitesse maximale, il y avait un peu de bégaiement, mais lorsque j'ai limité la vitesse de téléchargement à environ 200 ko/s en dessous de ma bande passante maximale, la situation était redevenue fluide.

De plus, vous avez éliminé toute perte de qualité.


Quelques problèmes sur ce qui précède - vérifiez et éditez plutôt ~/.config/rygel.conf, le /etc/.config/rygel.conf s'il n'est pas chargé par défaut (?).

La création du récepteur ne fonctionnera pas avec les versions ultérieures d'Ubuntu.

Ce qui a fonctionné pour moi, cependant, est de suivre toutes les instructions (sans la création de l'évier). Ensuite, lancez paprefs et, dans l’onglet "Serveur réseau", sélectionnez l’option inférieure "Rendre les périphériques audio locaux disponibles en tant que serveur uPnP" (et peut-être que la sous-option est également requise).

Démarrez rygel et sélectionnez la nouvelle option "DLNA/UPnP Streaming" dans les paramètres PulseAudio.

Sur BubbleUPnP, sélectionnez "Gst Launch" comme bibliothèque. Dans l'application, sélectionnez Bibliothèque. Une option en haut, intitulée "Son activé", devrait apparaître.

19
Karol Trojanowski

Vous voudrez peut-être regarder en dehors de la communauté Pulseaudio.

J'essaie Subsonic de faire cela. Cela a bien fonctionné jusqu'à présent. Je l'ai installé sur mon système Ubuntu, mon salon Roku, sur mes téléphones Androidprincipaux et sur mon téléphone secondaire Android, équipé uniquement du réseau wifi. Tous ces appareils sont connectés via wifi. Je prévois de l'installer également sur une machine Windows, afin que ma femme puisse diffuser sa collection iTunes sur d'autres appareils.

Je peux maintenant diffuser du contenu audio et vidéo depuis mon système Ubuntu vers mon Roku dans le salon ou vers mon Android que je peux emporter dans la cuisine ou tout en pliant le linge. Je peux aussi diffuser depuis n'importe quel ordinateur doté d'un navigateur Web. Je diffuse de la musique et des podcasts en travaillant sur de longs projets d’entretien ennuyeux.

Jusqu'à présent, cela a bien fonctionné.

1
Stefan Lasiewski

Shairplay ne supporte pas TCP et raop_play (je pense que pulseaudio-module-raop est basé sur ceci) ne supporte pas UDP. Pourquoi raop est TCP seulement si c'est étrange, UDP semble être un protocole plus facile et mieux adapté à première vue.

Et si votre source est flac, alors icecast via MP3 va tuer la qualité, en plus il s’agit plutôt d’un gros processeur. MPD supporte nativement la sortie pulseaudio afin que vous puissiez "allumer et éteindre" différentes pièces de la maison en utilisant par exemple un téléphone Android avec l'application mpdroid. Si vous pouviez utiliser les stations d'accueil Airplay comme points d'extrémité, vous auriez une configuration fantastique. Mais vous ne pouvez pas parce que ra raop ne supporte pas les points de terminaison UDP plus simples!

1
Stephen

Vous pouvez utiliser Foobar2000 sur le serveur et BubbleUPnP (logiciel payant) sur le client.

  1. obtenir du vin
  2. get foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. suivant, suivant, suivant ... :)
  5. get foo_upnp
  6. extraire dans le dossier composants de foobar2000 (qui est probablement dans ~/.wine/drive_c/Program Files/)
  7. lancer foobar2000
  8. allez à Bibliothèque → Configurer → Lecture → Sortie → Périphérique et sélectionnez "Sortie nulle".
  9. assurez-vous que ufw ne bloque pas le trafic en question
  10. dans BubbleUPnP:
    1. allez dans Périphériques → Bibliothèques et sélectionnez le serveur foobar2000
    2. dans "Library", sélectionnez "Playback Stream Capture"

Cette approche a l’avantage que si vous vous arrêtez sur Android, elle accumulera un tampon (puisque le serveur est toujours en train d’envoyer).

Testé sur Ubuntu (version Wine 1.5.28-0ubuntu1~ppa1, foobar2000 version 1.2.5 et foo_upnp version 0.99.46) et Windows.

0
Janus Troelsen