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

21

У меня есть неиспользуемый телефон 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, чтобы слушать его на соответствующих динамиках?

user35834
источник

Ответы:

13

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

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

Оли
источник
Спасибо, но на Android-рынке есть как минимум 2 приложения, которые должны решить именно мою проблему: «Удаленный звук» и «AirBubble» (который совместим с Apple AirportExpress).
user35834
@ user35834: после настройки сервера Icecast на стороне Ubuntu вы будете независимы на стороне получателя. Все (!), Которое может настроиться на «Интернет-радио», также сможет принимать ваш собственный поток. У Icecast против RAOP есть много дополнительных преимуществ.
Таккат
19

Два дня назад я наткнулся на этот вопрос и не смог понять его правильно. В конце концов я прочитал в руководстве 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» в качестве библиотеки. В приложении выберите «Библиотека», и сверху должна появиться опция «Звук включен».

Кароль Трояновский
источник
3
Афише, касающейся использования rygel: подход кажется разумным, но module-null-sink не принимает эти аргументы в версии 11.10. Вы должны иметь в виду другой модуль, но я пока не могу его найти. Хорошая идея, пожалуйста, помогите исправить
После запуска pactl load-module module-null-sink sink_name=upnp......, я получаю эту ошибку: Failure: Module initalization failed. Есть идеи?
Хуршид Алам
@KhurshidAlam: попробуйте мой подход, он не имеет редактирования текста и опирается только на работающий установленный Wine.
Янус Троелсен
@JanusTroelsen: Хотя ваш подход работает, я бы подчеркнул, что сначала нужно попробовать другие методы. Вино - отличный проект, но его следует использовать только в качестве крайней меры. Это ненадежно.
Тост
1

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

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

Стивен
источник
1

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

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

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

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

Стефан Ласевский
источник
0

Вы можете использовать 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 (версия Wine 1.5.28-0ubuntu1~ppa1, foobar2000 версия 1.2.5 и foo_upnp версия 0.99.46) и Windows.

Янус Троелсен
источник