Wie Android 2.1 Telefon als Remote-Audio-Empfänger verwenden?

21

Ich habe ein unbenutztes HTC Hero Android-Handy (mit Android OS 2.1), möchte es an einen Audioverstärker anschließen und für Monate angeschlossen lassen, damit ich dieses Android-Handy als Remote-Pulseaudio-Server / -Empfänger / usw. Verwenden kann.

Im Android Market ist die Anwendung "Remote Audio" verfügbar, mit der Streams von / dev / dsp abgerufen werden können. / dev / dsp wurde aus Versehen / aus irgendeinem Grund in Ubuntu 10.10 deaktiviert und auch nachdem ich es gemäß diesem Thread aktiviert habe - nachdem ich diese Anweisungen befolgt habe, hat es nicht geholfen, also wenn ich auf meinem Android auf die Schaltfläche Play / Pause klicke - nichts wirklich passiert und mpg123 song.mp3 benutzt immer noch meine Laptop-Lautsprecher. letzte | head zeigt diesen neuen Benutzer nicht einmal an, der sich anmeldet (ich nehme an, es sollte hier erscheinen?)

Auf der Suche nach "pulseaudio" habe ich Airbubble auf dem Android Market gefunden, aber es heißt, "funktioniert nicht mit RaopX unter MacOS X und dem raop-Modul für pulseaudio unter Linux." (c)

Gibt es also eine Möglichkeit, das Android-Telefon als Remote-Audioempfänger zu verwenden, im Idealfall nicht nur für die Wiedergabe von MP3 / Musik, sondern für das Sound-Subsystem im Allgemeinen?

Sicher bin ich nicht der einzige Mann, der Audio über WLAN an das Android-Handy senden möchte, um es über die richtigen Lautsprecher zu hören?

user35834
quelle

Antworten:

13

Ich denke, Sie überarbeiten die Idee und versuchen, Ihr Telefon dazu zu bringen, etwas zu tun, für das es nie vorgesehen war (Verbindung zu PulseAudio oder etwas noch Niedrigeres). Lassen Sie Ihren Computer die harte Arbeit erledigen.

Ich würde vorschlagen, mit etwas wie Icecast ( Tutorial hier ) zu arbeiten und eine der über 30 Apps für Android zu verwenden, die es streamen können.

Oli
quelle
Vielen Dank, aber es gibt mindestens 2 Anwendungen auf dem Android Market, die genau mein Problem lösen sollen: "Remote Audio" und "AirBubble" (kompatibel mit Apple AirportExpress).
user35834
@ user35834: Nachdem Sie auf der Ubuntu-Seite einen Icecast-Server eingerichtet haben, sind Sie auf der Empfängerseite unabhängig. Alles, was (!) Ein "Internetradio" empfangen kann, kann auch Ihren eigenen Stream empfangen. Icecast bietet gegenüber RAOP viele weitere Vorteile.
Takkat
19

Vor zwei Tagen bin ich auf diese Frage gestoßen und konnte es nicht richtig machen. Schließlich habe ich im AirBubble-Handbuch gelesen, dass RAOP nicht unterstützt wird.

Ich habe es endlich mit DLNA / UPnP-Fähigkeiten von pulseaudio gelöst. Es funktioniert genau so, wie Sie es erwarten würden. Sie spielen Sound mit jeder App mit Pulseaudio-Ausgabe auf Ihrer Box und wählen die Streaming-Ausgabe, wann immer Sie möchten, um sie auf Ihr Android-Gerät umzuleiten.

Installieren Sie zuerst Rygel:

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

Ändern Sie dann die Datei /etc/rygel.conf so, dass die Zeile mit dem Parameter enable-transcoding wie folgt aussieht:

enable-transcoding=false

Laden Sie dann die DLNA- und TCP-Module und starten Sie 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

Laden Sie auf Ihrem Android-Gerät die App BubbleUPnP herunter. Ihre pulseaudio-Ausgabegeräte werden unter dem Server "Sound on% HOSTNAME%" aufgelistet. Leiten Sie die Ausgabe auf Ihrem Computer in den Toneinstellungen an das DLNA-Gerät. Wählen Sie den gleichen Ausgang in BubbleUPnP.

Denken Sie daran, dass BubbleUPnP die ersten 30 Minuten kostenlos streamt. Die Vollversion kostet 3,49 €, aber ich denke, es ist den Preis wert. Ich habe keine andere App für mich zum Laufen bekommen.

Schließlich können Sie den Medienbrowser deaktivieren, wenn Sie ihn mit den Rygel-Einstellungen nicht mögen:

$ rygel-preferences

Noch ein Hinweis: Auf diese Weise werden LPCM-Rohdaten direkt übertragen, die konstant ~ 250 kB / s betragen. Jede falsche WLAN-Aktivität führt zu Stottern, wenn Sie sich nicht in einem 802.11 n-Netzwerk befinden. Wenn Sie vorhaben, Ihre Unterhaltungslösungen auf drahtlosem Streaming zu basieren, sollten Sie den Kauf eines drahtlosen Routers erwägen.

FOLLOW UP: TRANSCODIEREN

Um den Netzwerk-Overhead und das Ruckeln zu verringern (was nur in einem 802.11 n-Netzwerk der Fall ist), können Sie den Audiostream in MP3 umcodieren.

Fügen Sie dies in ~ / .config / rygel.conf ein

[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

Verwenden Sie den DLNA-Dienst "Gst Launch", der jetzt beim Starten von rygel angezeigt wird.

FOLLOW UP 2: FLAC

LAME kann eine Verzögerung von bis zu 2 Minuten (!) Verursachen. FLAC hingegen ist ziemlich schnell und taktet normalerweise unter einer Sekunde. Ändern Sie die Zeilen im obigen Beispiel in:

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

Dadurch wird der Stream auf ca. 100 kB / s reduziert, was eine reibungslose Wiedergabe in den meisten 802.11g-Netzwerken mit mehreren Benutzern ermöglicht. Ich habe es beim Herunterladen eines Torrents getestet. Bei voller Geschwindigkeit gab es ein Ruckeln, aber als ich die Download-Geschwindigkeit auf etwa 200 kB / s unter meiner maximalen Bandbreite beschränkte, war es wieder flüssig.

Außerdem haben Sie Qualitätsverluste beseitigt.


Einige der oben genannten Probleme - überprüfen und bearbeiten Sie ~/.config/rygel.confstattdessen, /etc/.config/rygel.confob es nicht standardmäßig geladen ist (?).

Die Sink-Erstellung funktioniert in späteren Ubuntu-Versionen nicht mehr.

Was mir jedoch geholfen hat, ist, alle Anweisungen zu befolgen (ohne die Spülenerstellung). Führen Sie dann aus paprefs, und wählen Sie auf der Registerkarte "Netzwerkserver" die untere Option "Lokale Audiogeräte als uPnP-Server verfügbar machen" (und möglicherweise ist auch die Unteroption erforderlich).

Starten Sie rygel und wählen Sie die neue Option "DLNA / UPnP-Streaming" in den PulseAudio-Einstellungen.

Auf BubbleUPnP wählen Sie "Gst Launch" als Bibliothek. Wählen Sie in der App Bibliothek aus, und oben sollte jetzt eine Option mit dem Namen "Ton ein" angezeigt werden.

Karol Trojanowski
quelle
3
Zum Poster bezüglich der Verwendung von Rygel: Der Ansatz scheint vernünftig, aber module-null-sink berücksichtigt diese Argumente in der 11.10-Version nicht. Sie müssen ein anderes Modul bedeuten, aber ich kann es noch nicht finden. Gute Idee, bitte helfen Sie mit.
Nach dem Ausführen pactl load-module module-null-sink sink_name=upnp......ich diesen Fehler: Failure: Module initalization failed. Irgendeine Idee?
Khurshid Alam
@ KhurshidAlam: Probieren Sie meinen Ansatz aus, er hat keine Textbearbeitung und beruht nur auf einem funktionierenden Wine, der installiert wird.
Janus Troelsen
@JanusTroelsen: Während Ihr Ansatz funktioniert, möchte ich betonen, dass zuerst andere Methoden versucht werden. Wein ist ein großartiges Projekt, sollte aber nur als letztes Mittel eingesetzt werden. Das ist unzuverlässig.
Toasty
1

Shairplay unterstützt kein TCP und raop_play (ich denke, pulseaudio-module-raop basiert darauf) unterstützt kein UDP. Warum raop nur TCP ist, ist seltsam, UDP scheint auf den ersten Blick ein einfacheres und besser geeignetes Protokoll zu sein.

Und wenn Sie eine flac-Quelle sind, wird Icecast über MP3 die Qualität beeinträchtigen, und es ist eher ein CPU-Problem. MPD unterstützt nativ die Pulseaudio-Ausgabe, sodass Sie verschiedene Räume des Hauses "ein- und ausschalten" können, indem Sie z. B. ein Android-Telefon mit mpdroid-App verwenden. Wenn Sie Airplay-Docks als Endpunkte verwenden könnten, hätten Sie ein fantastisches Setup. Aber Sie können nicht, weil raop die einfacheren UDP-Endpunkte nicht unterstützt!

Stephen
quelle
1

Möglicherweise möchten Sie einen Blick außerhalb der Pulseaudio-Community werfen.

Ich versuche es mit Subsonic . Bisher hat es gut funktioniert. Ich habe es auf meinem Ubuntu-System, meinem Wohnzimmer-Roku, auf meinen primären Android-Telefonen und auf meinem sekundären Android-Telefon installiert, das nur über WLAN verfügbar ist. Alle diese Geräte sind über WLAN verbunden. Ich plane, es auch auf einem Windows-Computer zu installieren, damit meine Frau ihre iTunes-Sammlung auf andere Geräte streamen kann.

Ich kann jetzt Audio und Video von meinem Ubuntu-System auf mein Roku im Wohnzimmer oder auf mein Android-Gerät streamen, das ich in die Küche oder beim Wäschefalten mitnehmen kann. Ich kann auch von jedem Computer streamen, der über einen Webbrowser verfügt. Ich streame Musik und Podcasts, während ich an langen, langweiligen Hausinstandhaltungsprojekten arbeite.

Bisher hat es gut geklappt.

Stefan Lasiewski
quelle
0

Sie können Foobar2000 auf dem Server und BubbleUPnP (Payware) auf dem Client verwenden.

  1. Wein holen
  2. erhalten foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. nächstes, nächstes, nächstes ... :)
  5. Holen Sie sich foo_upnp
  6. extrahiere in den Komponentenordner von foobar2000 (der sich wahrscheinlich in befindet ~/.wine/drive_c/Program Files/)
  7. starte foobar2000
  8. gehe zu Library → Configure → Playback → Output → Device und wähle "Null output"
  9. Stellen Sie sicher, dass ufwder relevante Datenverkehr nicht blockiert wird
  10. in BubbleUPnP:
    1. Gehen Sie zu Geräte → Bibliotheken und wählen Sie den foobar2000-Server aus
    2. Wählen Sie unter "Bibliothek" die Option "Stream-Aufnahme wiedergeben".

Dieser Ansatz hat den Vorteil, dass sich beim Anhalten auf Android ein Puffer ansammelt (da der Server noch sendet).

Getestet auf Ubuntu (Wine Version 1.5.28-0ubuntu1~ppa1, foobar2000 Version 1.2.5 und foo_upnp Version 0.99.46) und Windows.

Janus Troelsen
quelle