Jak używać telefonu z systemem Android 2.1 jako zdalnego odbiornika audio?

21

Mam nieużywany telefon z Androidem HTC Hero (z systemem Android OS 2.1), chciałbym podłączyć go do wzmacniacza audio i pozostawić podłączony przez miesiące, aby móc używać tego telefonu z systemem Android jako zdalnego serwera / odbiornika / pulseaudio itp.

W Android Market dostępna jest aplikacja „Remote Audio”, która może pobierać strumień z / dev / dsp. / dev / dsp został wyłączony przez pomyłkę / bez względu na przyczynę w Ubuntu 10.10 i nawet po włączeniu go zgodnie z tym wątkiem - po wykonaniu tych instrukcji nie pomogło, więc kiedy klikam przycisk Play / Pause na moim Androidzie - tak naprawdę dzieje się, a plik mpg123 song.mp3 nadal korzysta z głośników mojego laptopa. ostatni | head nawet nie pokazuje tego nowego użytkownika logującego się (chyba powinien się tutaj pojawić?)

Szukając „pulseaudio” znalazłem Airbubble na rynku Android, ale napisano: „nie działa z RaopX na MacOS X i modułem raop dla pulseaudio na Linux”. (do)

Czy jest więc sposób na użycie telefonu z Androidem jako zdalnego odbiornika audio, idealnie nie ograniczając się do odtwarzania plików mp3 / muzyki - ale ogólnie podsystemu Sound?

Z pewnością nie jestem jedynym człowiekiem, który chce nadawać dźwięk na telefon z Androidem przez Wi-Fi, aby słuchać go na odpowiednich głośnikach?

użytkownik35834
źródło

Odpowiedzi:

13

Myślę, że przesadzasz z tym pomysłem, próbując zmusić swój telefon do zrobienia czegoś, co nigdy nie było zamierzone (połącz się z PulseAudio lub coś jeszcze bardziej niskiego poziomu). Spraw, by Twój komputer wykonał ciężką pracę.

Sugeruję pójście z czymś takim jak Icecast ( samouczek tutaj ) i skorzystanie z jednej z 30 aplikacji na Androida, które mogą go przesyłać strumieniowo.

Oli
źródło
Dzięki, ale na rynku Android istnieją co najmniej 2 aplikacje, które powinny dokładnie rozwiązać mój problem: „zdalny dźwięk” i „AirBubble” (zgodny z Apple AirportExpress).
user35834,
@ user35834: po skonfigurowaniu serwera Icecast po stronie Ubuntu będziesz niezależny po stronie odbiorcy. Wszystko (!), Które można dostroić do „radia internetowego”, będzie również mogło odbierać własny strumień. Istnieje wiele dodatkowych korzyści z Icecast vs. RAOP.
Takkat
19

Dwa dni temu natknąłem się na to pytanie i nie mogłem tego dobrze zrozumieć. W końcu przeczytałem w instrukcji AirBubble, że RAOP nie jest obsługiwany.

W końcu rozwiązałem go za pomocą funkcji DLNA / UPnP pulseaudio. Działa tak, jak można się spodziewać. Odtwarzaj dźwięk w dowolnej aplikacji z wyjściem pulseaudio na swoim urządzeniu i wybierz wyjście strumieniowe, kiedy chcesz przekierować je na urządzenie z Androidem.

Najpierw zainstaluj Rygel:

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

Następnie zmień plik /etc/rygel.conf, aby linia z parametrem enable-trancoding wyglądała tak:

enable-transcoding=false

Następnie załaduj moduły DLNA i TCP i uruchom 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

Na urządzenie z Androidem pobierz aplikację BubbleUPnP. Twoje urządzenia wyjściowe pulseaudio zostaną wymienione na serwerze „Sound on% HOSTNAME%”. Skieruj wyjście komputera na urządzenie DLNA w preferencjach dźwiękowych. Wybierz to samo wyjście w BubbleUPnP.

Pamiętaj, że BubbleUPnP transmituje pierwsze 30 minut za darmo. Pełna wersja kosztuje 3,49 €, ale myślę, że jest warta swojej ceny. Nie dostałem żadnej innej aplikacji do pracy dla mnie.

Wreszcie możesz wyłączyć przeglądarkę multimediów, jeśli nie podoba ci się to za pomocą preferencji rygel:

$ rygel-preferences

Jeszcze jeden heads-up: to bezpośrednio przesyła nieprzetworzone dane LPCM, które stale wynoszą ~ 250 kB / s. Każda fałszywa aktywność WLAN spowoduje zacinanie się, jeśli jesteś w sieci innej niż 802.11 n. Jeśli planujesz oprzeć swoje rozwiązania rozrywkowe na bezprzewodowym przesyłaniu strumieniowym, rozważ zakup bezprzewodowego routera n.

DZIAŁANIA NASTĘPCZE: PRZEKŁADANIE

Aby zmniejszyć obciążenie sieci i jąkanie (co nastąpi, chyba że jesteś w sieci 802.11 n), możesz przejść do transkodowania strumienia audio na mp3.

Wklej to do ~ / .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

Skorzystaj z usługi DLNA „Gst Launch”, która pojawi się teraz po uruchomieniu Rygel.

FOLLOW UP 2: FLAC

LAME może powodować do 2 minut (!) Opóźnienia. Z drugiej strony FLAC jest dość szybki, zwykle taktowanie poniżej jednej sekundy. Zmień linie w powyższym przykładzie na:

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

Zmniejsza to strumień do około 100 kB / s, umożliwiając płynne odtwarzanie w większości sieci 802.11g z wieloma użytkownikami. Testowałem to podczas pobierania torrenta. Przy pełnej prędkości pojawiło się zacinanie, ale kiedy ograniczyłem prędkość pobierania do około 200 kB / s poniżej mojej maksymalnej przepustowości, znów było płynnie.

Ponadto wyeliminowałeś wszelkie straty jakości.


Kilka problemów powyżej - ~/.config/rygel.confzamiast tego sprawdź i edytuj , /etc/.config/rygel.confjeśli domyślnie nie jest ładowany (?).

Tworzenie ujścia nie będzie działać w późniejszych wersjach Ubuntu.

Dla mnie jednak działało przestrzeganie wszystkich instrukcji (bez tworzenia zlewu). Następnie uruchom paprefsi na zakładce „Serwer sieciowy” wybierz dolną opcję „Udostępnij lokalne urządzenia dźwiękowe jako serwer uPnP” (i być może wymagana jest również podopcja).

Uruchom rygel i wybierz nową opcję „DLNA / UPnP Streaming” w ustawieniach PulseAudio.

Na BubbleUPnP wybierz „Gst Launch” jako bibliotekę. W aplikacji wybierz Bibliotekę, a na górze powinna być teraz opcja „Dźwięk włączony”.

Karol Trojanowski
źródło
3
Do plakatu dotyczącego użycia rygela: podejście wydaje się rozsądne, ale moduł null-sink nie przyjmuje tych argumentów w wersji 11.10. Musisz oznaczać inny moduł, ale nie mogę go jeszcze zlokalizować. Dobry pomysł, pomóż, poprawiając.
Po uruchomieniu pactl load-module module-null-sink sink_name=upnp......, pojawia się ten błąd: Failure: Module initalization failed. Dowolny pomysł?
Khurshid Alam
@ KhurshidAlam: Wypróbuj moje podejście, nie ma edycji tekstu i polega tylko na zainstalowanym działającym Wine.
Janus Troelsen
@JanusTroelsen: Podczas gdy twoje podejście działa, chciałbym podkreślić, że najpierw należy spróbować innych metod. Wino to świetny projekt, ale powinno się go używać tylko w ostateczności. To niewiarygodne.
Toasty,
1

Shairplay nie obsługuje TCP, a raop_play (myślę, że pulseaudio-module-raop jest na tym oparty) nie obsługuje UDP. Dlaczego Raop jest tylko TCP jest dziwny, UDP wydaje się łatwiejszym i bardziej odpowiednim protokołem na pierwszy rzut oka.

A jeśli twoim źródłem jest flac, to icecast przez MP3 zabije jakość, a ponadto bardziej przypomina procesor. MPD natywnie obsługuje wyjście pulseaudio, dzięki czemu można „włączać i wyłączać” różne pokoje w domu za pomocą np. Telefonu z Androidem i aplikacją mpdroid. Gdybyś mógł użyć doków Airplay jako punktów końcowych, miałbyś fantastyczną konfigurację. Ale nie możesz, bo cos raop nie obsługuje prostszych punktów końcowych UDP!

Stephen
źródło
1

Możesz szukać poza społecznością Pulseaudio.

Próbuję to zrobić w Subsonic . Do tej pory działało dobrze. Zainstalowałem go w moim systemie Ubuntu, w moim salonie Roku, na moich głównych telefonach z Androidem i na drugim telefonie z Androidem, który jest tylko Wi-Fi. Wszystkie te urządzenia są połączone za pośrednictwem Wi-Fi. Planuję również zainstalować go na komputerze z systemem Windows, aby moja żona mogła przesyłać strumieniowo swoją kolekcję iTunes na inne urządzenia.

Mogę teraz przesyłać strumieniowo audio i wideo z mojego systemu Ubuntu do mojego Roku w salonie lub na Androida, który mogę zabrać do kuchni lub podczas składania prania. Mogę również przesyłać strumieniowo z dowolnego komputera z przeglądarką internetową. Przesyłam strumieniowo muzykę i podcasty podczas pracy nad długimi, nudnymi projektami utrzymania domu.

Do tej pory działało dobrze.

Stefan Lasiewski
źródło
0

Możesz używać Foobar2000 na serwerze i BubbleUPnP (payware) na kliencie.

  1. zdobyć wino
  2. dostać foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. następny, następny, następny ... :)
  5. zdobądź foo_upnp
  6. rozpakuj w folderze komponentów foobar2000 (który prawdopodobnie jest w ~/.wine/drive_c/Program Files/)
  7. uruchom foobar2000
  8. przejdź do Biblioteka → Konfiguruj → Odtwarzanie → Wyjście → Urządzenie i wybierz „Wyjście zerowe”
  9. upewnij się, że ufwnie blokuje odpowiedniego ruchu
  10. w BubbleUPnP:
    1. przejdź do Urządzenia → Biblioteki i wybierz serwer foobar2000
    2. w „Bibliotece” wybierz „Playback Stream Capture”

Zaletą tego podejścia jest to, że jeśli zatrzymasz się na Androidzie, zgromadzi bufor (ponieważ serwer nadal wysyła).

Testowane na Ubuntu (wersja Wine 1.5.28-0ubuntu1~ppa1, foobar2000 wersja 1.2.5 i foo_upnp wersja 0.99.46) i Windows.

Janus Troelsen
źródło