Как использовать телефон Android 2.1 в качестве удаленного аудиоприемника?

У меня есть неиспользуемый телефон HTC Hero для Android (под управлением Android OS 2.1), я хотел бы подключить его к аудиоусилителю и оставить его подключенным на несколько месяцев, чтобы я мог использовать этот телефон Android в качестве удаленного импульсного аудиосервера / ресивера / и т.д.

На Android Market доступно приложение "Remote Audio", которое может захватывать поток из /dev/dsp. /dev/dsp был отключен по ошибке / по любой причине в Ubuntu 10.10, и даже после того, как я включил его согласно этой теме - после выполнения этих инструкций это не помогло, поэтому, когда я нажимаю кнопку "Воспроизведение / Пауза" на моем Android - ничего на самом деле происходит и mpg123 song.mp3 по-прежнему использует динамики моего ноутбука. последний | руководитель даже не показывает, что новый пользователь входит в систему (я полагаю, он должен появиться здесь?)

В поиске по "pulseaudio" я обнаружил Airbubble на рынке Android, но там написано, что "не работает с RaopX на MacOS X и модулем raop для pulseaudio на Linux". (С)

Так есть ли способ использовать телефон Android в качестве удаленного аудиоприемника, в идеале не ограничиваясь воспроизведением mp3/ музыки - но подсистема Sound в целом?

Конечно, я не единственный человек, который хочет транслировать аудио на телефон Android через Wi-Fi, чтобы слушать его на соответствующих динамиках?

5 ответов

Решение

Я думаю, что вы слишком усердно работаете над идеей, пытаясь заставить свой телефон сделать то, чего он никогда не собирался делать (подключиться к PulseAudio или что-то еще более низкоуровневое). Заставьте свой компьютер выполнять тяжелую работу.

Я бы предложил пойти с чем-то вроде Icecast ( учебник здесь) и использовать одно из 30 с лишним приложений для Android, которое может транслировать его.

Два дня назад я наткнулся на этот вопрос и не смог понять его правильно. В конце концов я прочитал в руководстве AirBubble, что RAOP не поддерживается.

Я наконец-то решил это с помощью DULNA/UPnP-возможностей pulseaudio. Это работает так, как вы ожидаете. Вы воспроизводите звук с помощью любого приложения с выходом pulseaudio на своем устройстве и выбираете потоковый выход всякий раз, когда хотите перенаправить его на устройство Android.

Сначала установите Rygel:

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

Затем измените файл /etc/rygel.conf, чтобы строка с параметром enable-transcoding выглядела так:

enable-transcoding=false

Затем загрузите модули DLNA и TCP и запустите 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

На вашем Android-устройстве загрузите приложение BubbleUPnP. Ваши устройства вывода импульсов и звука будут перечислены на сервере "Звук на%HOSTNAME%". Направьте вывод на вашем компьютере на устройство DLNA в настройках звука. Выберите тот же выход в BubbleUPnP.

Имейте в виду, что BubbleUPnP транслирует первые 30 минут бесплатно. Полная версия составляет 3,49€, но я думаю, что стоит цена. У меня не было другого приложения, чтобы работать на меня.

Наконец, вы можете отключить медиабраузер, если он вам не нравится, используя настройки rygel:

$ rygel-preferences

Еще одно замечание: он напрямую передает потоковые данные LPCM, которые постоянно составляют ~250 кБ / с. Любая ложная активность WLAN вызовет заикание, если вы находитесь не в сети 802.11 n. Если вы планируете основывать свои развлекательные решения на беспроводной потоковой передаче, рассмотрите возможность приобретения беспроводного маршрутизатора n.

ПОСЛЕДУЮЩИЙ: ТРАНСКОДИНГ

Чтобы уменьшить нагрузку на сеть и заикание (что произойдет, если вы не находитесь в сети 802.11 n), можно перейти к транскодированию аудиопотока в mp3.

Вставьте это в ~/.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

Используйте сервис Gst Launch DLNA, который теперь будет отображаться при запуске rygel.

СЛЕДУЙТЕ ЗА 2: FLAC

LAME может вызвать задержку до 2 минут (!). FLAC, с другой стороны, довольно быстрый, обычно работает менее одной секунды. Измените строки в приведенном выше примере на:

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

Это уменьшает поток примерно до 100 кБ / с, обеспечивая плавное воспроизведение в большинстве сетей 802.11g с несколькими пользователями. Я проверял это при загрузке торрента. На полной скорости было некоторое заикание, но когда я ограничил скорость загрузки примерно до 200 кБ / с ниже моей максимальной пропускной способности, он снова стал плавным.

Кроме того, вы устранили любую потерю качества.


Пара вопросов по вышеупомянутому - проверьте и отредактируйте ~/.config/rygel.conf вместо этого /etc/.config/rygel.conf если он не загружен по умолчанию (?).

Создание приемника не будет работать в более поздних версиях Ubuntu.

Однако для меня сработало следование всем инструкциям (без создания раковины). Тогда беги paprefsи на вкладке "Сетевой сервер" выберите нижнюю опцию "Сделать локальные звуковые устройства доступными в качестве сервера uPnP" (и, возможно, эта опция также требуется).

Запустите rygel и выберите новую опцию "DLNA/UPnP Streaming" в настройках PulseAudio.

На BubbleUPnP выберите "Gst Launch" в качестве библиотеки. В приложении выберите "Библиотека", и сверху должна появиться опция "Звук включен".

Shairplay не поддерживает TCP, а raop_play (я думаю, что на этом основан pulseaudio-module-raop) не поддерживает UDP. Почему raop - это TCP только странно, UDP выглядит как более простой и подходящий протокол.

И если вы используете источник flac, то ледяные трансляции через MP3 приведут к снижению качества, плюс это скорее нагрузка на процессор. MPD изначально поддерживает вывод импульсов и звука, так что вы можете "включать и выключать" разные комнаты дома, используя, например, телефон Android с приложением mpdroid. Если бы вы могли использовать доки в качестве конечных точек, у вас была бы фантастическая настройка. Но вы не можете, потому что raop не поддерживает более простые конечные точки UDP!

Возможно, вы захотите заглянуть за пределы сообщества Pulseaudio.

Я пытаюсь сделать это с помощью Subsonic. До сих пор это работало хорошо. Я установил его в моей системе Ubuntu, в моей гостиной Roku, на моих основных телефонах Android и на моем дополнительном телефоне Android, который доступен только для Wi-Fi. Все эти устройства подключены через Wi-Fi. Я также планирую установить его на компьютер с Windows, чтобы моя жена могла передавать свою коллекцию iTunes на другие устройства.

Теперь я могу передавать аудио и видео со своей системы Ubuntu на мой Roku в гостиной или на свой Android, который я могу взять с собой на кухню или складывать белье. Я также могу транслировать с любого компьютера, на котором есть веб-браузер. Я транслирую музыку и подкасты, работая над длинными, скучными проектами по обслуживанию домов.

Пока что это сработало хорошо.

Вы можете использовать Foobar2000 на сервере и BubbleUPnP ( payware) на клиенте.

  1. получить вино
  2. получить foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. следующий, следующий, следующий...:)
  5. получить foo_upnp
  6. распаковать в папку компонентов foobar2000 (которая, вероятно, находится в ~/.wine/drive_c/Program Files/)
  7. запустить foobar2000
  8. перейдите в Библиотеку → Настройка → Воспроизведение → Выход → Устройство и выберите "Нулевой выход"
  9. удостовериться ufw не блокирует соответствующий трафик
  10. в BubbleUPnP:
    1. зайдите в Устройства → Библиотеки и выберите сервер foobar2000
    2. в "Библиотеке" выберите "Захват потока воспроизведения"

Преимущество этого подхода заключается в том, что если вы сделаете паузу на Android, он будет накапливать буфер (так как сервер все еще отправляет).

Проверено на Ubuntu (винная версия 1.5.28-0ubuntu1~ppa1, foobar2000 версии 1.2.5 и foo_upnp версии 0.99.46) и Windows.

Другие вопросы по тегам