¿Cómo usar el teléfono Android 2.1 como receptor de audio remoto?

21

Tengo un teléfono Android HTC Hero sin usar (con Android OS 2.1), me gustaría conectarlo al amplificador de audio y dejarlo conectado durante meses, para poder usar este teléfono Android como servidor / receptor remoto de pulseaudio / etc.

Hay una aplicación de "Audio remoto" disponible en Android Market, que puede capturar la transmisión desde / dev / dsp. / dev / dsp se ha deshabilitado por error / por cualquier motivo en ubuntu 10.10 e incluso después de habilitarlo según este hilo , después de seguir estas instrucciones no ayudó, así que cuando hago clic en el botón Reproducir / Pausa en mi Android, nada realmente sucede y mpg123 song.mp3 todavía usa los altavoces de mi computadora portátil. ultimo | head incluso no muestra a este nuevo usuario iniciando sesión (¿supongo que debería aparecer aquí?)

Buscando por "pulseaudio" encontré Airbubble en el mercado de Android, pero dice "no funciona con RaopX en MacOS X y el módulo raop para pulseaudio en Linux". (do)

Entonces, ¿hay alguna manera de usar el teléfono Android como receptor de audio remoto, idealmente no limitado a reproducir mp3 / música, sino el subsistema de sonido en general?

¿Seguramente no soy el único hombre que desea transmitir audio al teléfono Android a través de wi-fi para escucharlo en los altavoces adecuados?

usuario35834
fuente

Respuestas:

13

Creo que está trabajando demasiado en la idea, tratando de hacer que su teléfono haga algo que nunca tuvo la intención de hacer (conectarse a PulseAudio o algo aún más de bajo nivel). Haz que tu computadora haga el trabajo duro.

Sugeriría ir con algo como Icecast ( tutorial aquí ) y usar una de las 30 aplicaciones para Android que pueden transmitirlo.

Oli
fuente
Gracias, pero hay al menos 2 aplicaciones en el mercado de Android que se supone que resuelven exactamente mi problema: "audio remoto" y "AirBubble" (que es compatible con Apple AirportExpress).
user35834
@ user35834: después de haber configurado un servidor Icecast en el lado de Ubuntu, será independiente en el lado del receptor. Cualquier cosa (!) Que pueda sintonizar una "Radio por Internet" también podrá recibir su propia transmisión. Icecast vs. RAOP ofrece muchas ventajas adicionales.
Takkat
19

Hace dos días me topé con esta pregunta y no pude hacerlo bien. Finalmente leí en el manual de AirBubble que RAOP no es compatible.

Finalmente lo resolví con las capacidades DLNA / UPnP de pulseaudio. Funciona como es de esperar. Reproduce sonido con cualquier aplicación con salida de pulseaudio en su caja y selecciona la salida de transmisión siempre que desee redirigirla a su dispositivo Android.

Primero, instale Rygel:

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

Luego modifique el archivo /etc/rygel.conf, de modo que la línea con el parámetro enable-transcoding se vea así:

enable-transcoding=false

Luego cargue los módulos DLNA y TCP e inicie 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

En su dispositivo Android, descargue la aplicación BubbleUPnP. Sus dispositivos de salida pulseaudio se enumerarán en el servidor "Sonido en% HOSTNAME%". Dirija la salida de su computadora al dispositivo DLNA en preferencias de sonido. Seleccione la misma salida en BubbleUPnP.

Tenga en cuenta que BubbleUPnP transmite los primeros 30 minutos de forma gratuita. La versión completa cuesta 3,49 €, pero creo que vale la pena el precio. No conseguí ninguna otra aplicación que funcione para mí

Finalmente, puede deshabilitar el navegador de medios si no le gusta usando rygel -ferences:

$ rygel-preferences

Una advertencia más: esto transmite directamente datos LPCM sin procesar, que son constantemente ~ 250 kB / s. Cualquier actividad espuria de la WLAN inducirá la tartamudez si está en una red que no sea 802.11n. Si planea basar sus soluciones de entretenimiento en transmisión inalámbrica, considere comprar un enrutador inalámbrico n.

SEGUIMIENTO: TRANSCODIFICACIÓN

Para reducir la sobrecarga y el tartamudeo de la red (lo que sucederá a menos que esté en una red 802.11n), es posible transcodificar la transmisión de audio a mp3.

Pegue esto en ~ / .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

Utilice el servicio DLNA "Gst Launch" que ahora aparecerá cuando inicie rygel.

SEGUIMIENTO 2: FLAC

LAME puede causar hasta 2 minutos (!) De retraso. FLAC por otro lado es bastante rápido, normalmente registra menos de un segundo. Cambie las líneas en el ejemplo anterior a:

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

Esto reduce la transmisión a aproximadamente 100 kB / s, lo que permite una reproducción fluida en la mayoría de las redes 802.11g con múltiples usuarios. Lo probé mientras descargaba un torrent. A toda velocidad, hubo un poco de tartamudeo, pero cuando limité la velocidad de descarga a alrededor de 200 kB / s por debajo de mi ancho de banda máximo, fue suave nuevamente.

Además, ha eliminado cualquier pérdida de calidad.


Un par de problemas en lo anterior: verifique y edite en su ~/.config/rygel.conflugar, /etc/.config/rygel.confsi no se carga de manera predeterminada (?

La creación de sumidero no funcionará en versiones posteriores de Ubuntu.

Sin embargo, lo que funcionó para mí es seguir todas las instrucciones (sin la creación del sumidero). Luego ejecute paprefs, y en la pestaña "Servidor de red", seleccione la opción inferior "Hacer que los dispositivos de sonido locales estén disponibles como servidor uPnP" (y tal vez también se requiera la subopción).

Inicie rygel y seleccione la nueva opción "DLNA / UPnP Streaming" en la configuración de PulseAudio.

En BubbleUPnP, seleccione "Gst Launch" como Biblioteca. En la aplicación, seleccione Biblioteca y ahora debería haber una opción en la parte superior llamada "Sonido activado".

Karol Trojanowski
fuente
3
Para el póster sobre el uso de rygel: el enfoque parece sólido, pero module-null-sink no toma esos argumentos en la versión 11.10. Debe referirse a otro módulo, pero todavía no puedo localizarlo. Buena idea, por favor ayuda corrigiendo.
Después de correr pactl load-module module-null-sink sink_name=upnp......, me sale este error: Failure: Module initalization failed. ¿Alguna idea?
Khurshid Alam
@KhurshidAlam: Pruebe mi enfoque, no tiene edición de texto y se basa solo en un Wine que se está instalando.
Janus Troelsen
@JanusTroelsen: Si bien su enfoque funciona, enfatizaría que primero se intenten otros métodos. El vino es un gran proyecto, pero solo debe usarse como último recurso. No es confiable.
Toasty
1

Shairplay no es compatible con TCP y raop_play (creo que pulseaudio-module-raop se basa en esto) no es compatible con UDP. Por qué raop es TCP solo es extraño, UDP parece ser un protocolo más fácil y más adecuado a primera vista.

Y si su fuente es flac, entonces icecast a través de MP3 matará la calidad, además de que es más un CPU hog. MPD admite de forma nativa la salida de audio de pulso para que pueda "encender y apagar" diferentes habitaciones de la casa utilizando, por ejemplo, un teléfono Android con la aplicación mpdroid. Si pudieras usar los muelles Airplay como puntos finales, tendrías una configuración fantástica. ¡Pero no puede hacerlo porque raop no admite los puntos finales UDP más simples!

Stephen
fuente
1

Es posible que desee mirar fuera de la comunidad Pulseaudio.

Estoy probando subsónico para hacer esto. Ha funcionado bien hasta ahora. Lo instalé en mi sistema Ubuntu, mi sala de estar Roku, en mis teléfonos Android principales y en mi teléfono Android secundario que es solo wifi. Todos estos dispositivos están conectados a través de wifi. Estoy planeando instalarlo también en una máquina Windows, para que mi esposa pueda transmitir su colección de iTunes a otros dispositivos.

Ahora puedo transmitir audio y video desde mi sistema Ubuntu a mi Roku en la sala de estar o mi Android, que puedo llevar a la cocina o al doblar la ropa. También puedo transmitir desde cualquier computadora que tenga un navegador web. Transmito música y podcasts mientras trabajo en largos y aburridos proyectos de mantenimiento de la casa.

Hasta ahora ha funcionado bien.

Stefan Lasiewski
fuente
0

Puede usar Foobar2000 en el servidor y BubbleUPnP (payware) en el cliente.

  1. conseguir vino
  2. obtener foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. siguiente, siguiente, siguiente ... :)
  5. obtener foo_upnp
  6. extraer en la carpeta de componentes de foobar2000 (que probablemente esté en ~/.wine/drive_c/Program Files/)
  7. lanzar foobar2000
  8. vaya a Biblioteca → Configurar → Reproducción → Salida → Dispositivo y seleccione "Salida nula"
  9. asegúrese de ufwque no esté bloqueando el tráfico relevante
  10. en BubbleUPnP:
    1. vaya a Dispositivos → Bibliotecas y seleccione el servidor foobar2000
    2. en "Biblioteca", seleccione "Captura de reproducción de reproducción"

Este enfoque tiene la ventaja de que si hace una pausa en Android, acumulará un búfer (ya que el servidor todavía está enviando).

Probado en Ubuntu (versión Wine 1.5.28-0ubuntu1~ppa1, foobar2000 versión 1.2.5 y foo_upnp versión 0.99.46) y Windows.

Janus Troelsen
fuente