Comment utiliser le téléphone Android 2.1 comme récepteur audio à distance?


21

J'ai un téléphone Android HTC Hero inutilisé (exécutant Android OS 2.1), je voudrais 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 à distance / etc.

Il existe une application "Remote Audio" 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 dans Ubuntu 10.10 et même après l'avoir activé 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 de vraiment arrive et mpg123 song.mp3 utilise toujours mes haut-parleurs portables. dernier | head ne montre même pas la connexion de ce nouvel utilisateur (je suppose qu'il devrait apparaître ici?)

Recherche par "pulseaudio" J'ai trouvé Airbubble sur le marché Android, mais il dit "ne fonctionne pas avec RaopX sur MacOS X et le module raop pour pulseaudio sur Linux." (c)

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

Sûrement je ne suis pas le seul homme qui souhaite diffuser de l'audio sur le téléphone Android via wi-fi pour l'écouter sur des haut-parleurs appropriés?

Réponses:


13

Je pense que vous surchargez l'idée, en essayant de faire faire à votre téléphone quelque chose qu'il n'a jamais été fait (connectez-vous à PulseAudio ou quelque chose d'encore plus bas). Faites travailler dur votre ordinateur.

Je suggère d'aller avec quelque chose comme Icecast ( tutoriel ici ) et d'utiliser l'une des 30 applications pour Android qui peuvent le diffuser.


Merci, mais il y a au moins 2 applications sur Android Market censées résoudre exactement mon problème: "audio à distance" et "AirBubble" (qui est compatible avec Apple AirportExpress).
user35834

@ user35834: après avoir configuré un serveur Icecast côté Ubuntu, vous serez indépendant côté récepteur. Tout (!) Qui peut syntoniser une "radio Internet" pourra également recevoir votre propre flux. Il existe de nombreux avantages supplémentaires entre Icecast et RAOP.
Takkat

19

Il y a deux jours, je suis tombé sur cette question et je n'ai pas pu la faire correctement. 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 exactement comme vous vous en doutez. Vous jouez du son avec n'importe quelle application avec une sortie pulseaudio sur votre box et sélectionnez la sortie de 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

Modifiez ensuite le fichier /etc/rygel.conf, de sorte que la ligne avec le paramètre enable-transcoding ressemble à ceci:

enable-transcoding=false

Chargez ensuite 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 sonores. Sélectionnez la même sortie dans BubbleUPnP.

Gardez à l'esprit que BubbleUPnP diffuse gratuitement les 30 premières minutes. La version complète est à 3,49 €, mais je suppose que ça vaut le prix. Je n'ai pas utilisé d'autre application pour moi.

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

$ rygel-preferences

Un autre avertissement: cela diffuse directement les données LPCM brutes, qui sont constamment ~ 250 kB / s. Toute activité WLAN parasite induira un bégaiement si vous êtes sur autre chose qu'un réseau 802.11 n. Si vous prévoyez de baser vos solutions de divertissement sur le streaming sans fil, pensez à acheter un routeur sans fil n.

SUIVI: TRANSCODAGE

Pour réduire la surcharge du réseau et le bégaiement (ce qui se produira à moins que vous ne soyez sur un réseau 802.11 n), il est possible de passer au transcodage du flux audio en mp3.

Collez-le 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 désormais lorsque vous lancerez rygel.

SUIVI 2: FLAC

LAME peut entraîner jusqu'à 2 minutes (!) De retard. FLAC d'autre part est assez rapide, cadencant normalement en dessous d'une seconde. Remplacez les lignes de l'exemple ci-dessus par:

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

Cela réduit le flux à environ 100 kB / s, permettant une lecture fluide sur la plupart des réseaux 802.11g avec plusieurs utilisateurs. Je l'ai testé lors du téléchargement d'un torrent. À pleine vitesse, il y avait un certain bégaiement, mais quand j'ai limité la vitesse de téléchargement à environ 200 kB / s en dessous de ma bande passante maximale, c'était à nouveau fluide.

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


Quelques problèmes sur ce qui précède - vérifiez et modifiez à la ~/.config/rygel.confplace, le /etc/.config/rygel.confs'il n'est pas chargé par défaut (?).

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

Ce qui a fonctionné pour moi, cependant, c'est de suivre toutes les instructions (sans la création de l'évier). Ensuite, exécutez 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 et il devrait maintenant y avoir une option en haut appelée "Sound on".


3
Pour l'affiche concernant l'utilisation de rygel: l'approche semble bonne mais module-null-sink ne prend pas ces arguments dans la version 11.10. Vous devez dire un autre module mais je ne le trouve pas encore. Bonne idée, veuillez aider en corrigeant.

Après l' exécution pactl load-module module-null-sink sink_name=upnp......, je reçois cette erreur: Failure: Module initalization failed. Une idée?
Khurshid Alam

@KhurshidAlam: Essayez mon approche, il n'a pas d'édition de texte et repose uniquement sur un Wine en cours d'installation.
Janus Troelsen

@JanusTroelsen: Bien que votre approche fonctionne, je tiens à souligner que d'autres méthodes doivent être tentées en premier. Le vin est un excellent projet, mais ne doit être utilisé qu'en dernier recours. Ce n'est pas fiable.
Toasty

1

Shairplay ne prend pas en charge TCP et raop_play (je pense que pulseaudio-module-raop est basé sur cela) ne prend pas en charge UDP. Pourquoi raop est TCP uniquement est bizarre, UDP semble être un protocole plus facile et plus adapté à première vue.

Et si votre source est flac, icecast via MP3 va tuer la qualité, en plus c'est plus un porc de CPU. MPD prend en charge 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 quais Airplay comme points de terminaison, vous auriez une configuration fantastique. Mais vous ne pouvez pas parce que raop ne prend pas en charge les points de terminaison UDP plus simples!


1

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

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

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

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


0

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

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

Cette approche a l'avantage que si vous faites une pause sur Android, elle accumulera un tampon (puisque le serveur envoie toujours).

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.