Como usar o telefone Android 2.1 como receptor de áudio remoto?

21

Eu tenho um telefone Android HTC Hero não usado (executando o Android OS 2.1), gostaria de conectá-lo ao amplificador de áudio e deixá-lo conectado por meses, para poder usar esse telefone Android como servidor / receptor / receptor de áudio pulseaudio etc.

Há um aplicativo "Remote Audio" disponível no Android Market, que pode capturar o fluxo em / dev / dsp. / dev / dsp foi desativado por engano / por qualquer motivo no ubuntu 10.10 e mesmo depois que eu o habilitei de acordo com este tópico - depois de seguir estas instruções , não ajudou, então quando clico no botão Reproduzir / Pausar no meu android - nada realmente acontece e o mpg123 song.mp3 ainda usa os alto-falantes do meu laptop. ultimo head ainda não mostra esse novo usuário acessando (suponho que ele deva aparecer aqui?)

Pesquisando por "pulseaudio", encontrei o Airbubble no Android market, mas ele diz que "não funciona com o RaopX no MacOS X e o módulo raop do pulseaudio no Linux". c)

Então, existe uma maneira de usar o telefone Android como receptor de áudio remoto, idealmente não limitado a tocar mp3 / música - mas o subsistema de som em geral?

Certamente eu não sou o único homem que deseja transmitir áudio para o telefone Android via Wi-Fi para ouvi-lo nos alto-falantes adequados?

user35834
fonte

Respostas:

13

Acho que você está exagerando na idéia, tentando fazer com que seu telefone faça algo que nunca foi planejado (conecte-se ao PulseAudio ou algo ainda mais baixo). Faça seu computador fazer o trabalho duro.

Eu sugiro ir com algo como o Icecast ( tutorial aqui ) e usar um dos 30 aplicativos ímpares para Android que podem transmiti-lo.

Oli
fonte
Obrigado, mas existem pelo menos 2 aplicativos no Android market que deveriam resolver exatamente o meu problema: "áudio remoto" e "AirBubble" (compatível com o Apple AirportExpress).
user35834
@ user35834: depois de configurar um servidor Icecast no Ubuntu, você será independente no receptor. Qualquer coisa (!) Que possa sintonizar uma "Rádio da Internet" também poderá receber seu próprio fluxo. Existem muitas vantagens adicionais do Icecast vs. RAOP.
Takkat 29/11
19

Há dois dias, tropecei nessa questão e não consegui acertar. Eventualmente, li no manual do AirBubble que o RAOP não é suportado.

Finalmente resolvi com recursos DLNA / UPnP do pulseaudio. Funciona exatamente como você esperaria. Você toca som com qualquer aplicativo com saída pulseaudio na sua caixa e seleciona a saída de streaming sempre que quiser redirecioná-la para o seu dispositivo Android.

Primeiro, instale o Rygel:

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

Em seguida, altere o arquivo /etc/rygel.conf, para que a linha com o parâmetro enable-transcoding fique assim:

enable-transcoding=false

Em seguida, carregue os módulos DLNA e TCP e inicie o 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

No seu dispositivo Android, baixe o aplicativo BubbleUPnP. Seus dispositivos de saída pulseaudio serão listados no servidor "Som em% HOSTNAME%". Direcione a saída do seu computador para o dispositivo DLNA nas preferências de som. Selecione a mesma saída no BubbleUPnP.

Lembre-se de que o BubbleUPnP transmite os primeiros 30 minutos gratuitamente. A versão completa custa 3,49 €, mas acho que vale o preço. Não recebi nenhum outro aplicativo para trabalhar para mim.

Por fim, você pode desativar o navegador de mídia se não gostar usando as preferências do rygel:

$ rygel-preferences

Mais um alerta: isso transmite diretamente dados brutos de LPCM, que são constantemente ~ 250 kB / s. Qualquer atividade espúria da WLAN induz a gagueira se você estiver em algo que não seja uma rede 802.11 n. Se você planeja basear suas soluções de entretenimento em streaming sem fio, considere comprar um roteador sem fio n.

ACOMPANHAMENTO: TRANSCodificação

Para reduzir a sobrecarga e a gagueira da rede (o que acontecerá a menos que você esteja em uma rede 802.11 n), é possível passar para a transcodificação do fluxo de áudio para mp3.

Cole isso em ~ / .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

Use o serviço DLNA "Gst Launch" que agora aparecerá quando você iniciar o rygel.

SEGUIMENTO 2: FLAC

LAME pode causar até 2 minutos (!) De atraso. O FLAC, por outro lado, é bastante rápido, normalmente com clock abaixo de um segundo. Altere as linhas no exemplo acima para:

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

Isso reduz o fluxo para cerca de 100 kB / s, permitindo uma reprodução suave na maioria das redes 802.11g com vários usuários. Eu testei durante o download de um torrent. Na velocidade máxima, houve alguma gagueira, mas quando limitei a velocidade de download para cerca de 200 kB / s abaixo da minha largura de banda máxima, ela ficou suave novamente.

Além disso, você eliminou qualquer perda de qualidade.


Algumas questões acima - verifique e edite ~/.config/rygel.conf, em vez disso, o/etc/.config/rygel.conf se não estiver carregado por padrão (?).

A criação do coletor não funcionará nas versões posteriores do Ubuntu.

O que funcionou para mim, no entanto, é seguir todas as instruções (sem a criação do coletor). Então corrapaprefs , e, na guia "Servidor de rede", selecione a opção inferior "Disponibilizar dispositivos de som locais como servidor uPnP" (e talvez a subopção também seja necessária).

Inicie o rygel e selecione a nova opção "DLNA / UPnP Streaming" nas configurações do PulseAudio.

No BubbleUPnP, selecione "Gst Launch" como Biblioteca. No aplicativo, selecione Biblioteca e agora deve haver uma opção na parte superior chamada "Som ativado".

Karol Trojanowski
fonte
3
Para o pôster sobre o uso do rygel: a abordagem parece sólida, mas module-null-sink não aceita esses argumentos na versão 11.10. Você deve se referir a outro módulo, mas ainda não consigo localizá-lo. Boa ideia, por favor ajude corrigindo.
Após a execução pactl load-module module-null-sink sink_name=upnp......, eu recebo este erro: Failure: Module initalization failed. Qualquer ideia?
Khurshid Alam
@KhurshidAlam: Tente minha abordagem, ela não possui edição de texto e depende apenas de um Wine que esteja sendo instalado.
Janus Troelsen
@JanusTroelsen: Embora sua abordagem funcione, eu enfatizaria que outros métodos devem ser tentados primeiro. O vinho é um ótimo projeto, mas só deve ser usado como último recurso. Não é confiável.
Toasty
1

O Shairplay não suporta TCP e o raop_play (acho que o pulseaudio-module-raop é baseado nisso) não suporta UDP. Por que o raop é apenas o TCP é estranho, o UDP parece ser um protocolo mais fácil e mais adequado.

E se sua fonte é flac, o icecast via MP3 vai matar a qualidade, além de ser mais um porco da CPU. O MPD suporta nativamente a saída pulseaudio para que você possa "ligar e desligar" diferentes salas da casa usando, por exemplo, um telefone Android com o aplicativo mpdroid. Se você pudesse usar as docas de airplay como pontos de extremidade, teria uma configuração fantástica. Mas você não pode, porque o raop não suporta os pontos de extremidade UDP mais simples!

Stephen
fonte
1

Você pode procurar fora da comunidade Pulseaudio.

Estou experimentando o subsônico para fazer isso. Funcionou bem até agora. Eu o instalei no meu sistema Ubuntu, na minha sala de estar Roku, nos meus telefones Android primários e no meu telefone Android secundário, que é apenas wifi. Todos esses dispositivos estão conectados via wifi. Também estou planejando instalá-lo em uma máquina Windows, para que minha esposa possa transmitir sua coleção do iTunes para outros dispositivos.

Agora posso transmitir áudio e vídeo do meu sistema Ubuntu para o meu Roku na sala de estar ou para o meu Android, que posso levar para a cozinha ou enquanto dobra a roupa. Também posso transmitir a partir de qualquer computador que tenha um navegador da web. Transmito músicas e podcasts enquanto trabalho em projetos de manutenção de casas longos e chatos.

Até agora, funcionou bem.

Stefan Lasiewski
fonte
0

Você pode usar Foobar2000 no servidor e BubbleUPnP (payware) no cliente.

  1. obter vinho
  2. obter foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. próximo, próximo, próximo ... :)
  5. obter foo_upnp
  6. extrair na pasta de componentes do foobar2000 (que provavelmente está dentro ~/.wine/drive_c/Program Files/)
  7. lançamento foobar2000
  8. vá para Biblioteca → Configurar → Reprodução → Saída → Dispositivo e selecione "Saída nula"
  9. verifique se ufwnão está bloqueando o tráfego relevante
  10. no BubbleUPnP:
    1. vá para Dispositivos → Bibliotecas e selecione o servidor foobar2000
    2. em "Biblioteca", selecione "Captura de fluxo de reprodução"

Essa abordagem tem a vantagem de que, se você pausar no Android, ele acumulará um buffer (já que o servidor ainda está enviando).

Testado no Ubuntu (versão Wine 1.5.28-0ubuntu1~ppa1, foobar2000 versão 1.2.5 e foo_upnp versão 0.99.46) e Windows.

Janus Troelsen
fonte