Как использовать телефон 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) на клиенте.
- получить вино
- получить
foobar_v1.2.5.exe $ wine foobar2000_v1.2.5.exe- следующий, следующий, следующий...:)
- получить foo_upnp
- распаковать в папку компонентов foobar2000 (которая, вероятно, находится в
~/.wine/drive_c/Program Files/) - запустить foobar2000
- перейдите в Библиотеку → Настройка → Воспроизведение → Выход → Устройство и выберите "Нулевой выход"
- удостовериться
ufwне блокирует соответствующий трафик - в BubbleUPnP:
- зайдите в Устройства → Библиотеки и выберите сервер foobar2000
- в "Библиотеке" выберите "Захват потока воспроизведения"
Преимущество этого подхода заключается в том, что если вы сделаете паузу на Android, он будет накапливать буфер (так как сервер все еще отправляет).
Проверено на Ubuntu (винная версия 1.5.28-0ubuntu1~ppa1, foobar2000 версии 1.2.5 и foo_upnp версии 0.99.46) и Windows.