Як використовувати телефон Android 2.1 як віддалений аудіоприймач?


21

У мене є невикористаний телефон HTC Hero Android (працює під управлінням ОС Android 2.1), я хотів би підключити його до аудіопідсилювача і залишити його підключеним місяцями, щоб я міг використовувати цей андроїд телефон як віддалений імпульсний сервер / приймач / тощо.

На Android Market є програма "Віддалене аудіо", яка може захопити потік з / dev / dsp. / dev / dsp був відключений помилково / з будь-якої причини в ubuntu 10.10 і навіть після того, як я включив його відповідно до цієї теми - після виконання цих інструкцій це не допомогло, тому коли я натискаю кнопку "Відтворити / призупиняти" на своєму Android - нічого насправді буває, і mpg123 song.mp3 як і раніше використовує динаміки мого ноутбука. останній | head навіть не показує цього нового користувача, який увійшов (я думаю, він повинен з’явитися тут?)

За допомогою "pulseaudio" я знайшов Airbubble на ринку Android, але він говорить, що "не працює з RaopX на MacOS X та модулем Raop для pulseaudio в Linux". (c)

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

Звичайно, я не єдиний чоловік, який бажає транслювати аудіо на телефон Android через wi-fi, щоб слухати його на належних динаміках?

Відповіді:


13

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

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


Дякую, але на ринку Android є щонайменше 2 програми, які повинні вирішити саме мою проблему: "віддалене аудіо" та "AirBubble" (що сумісне з Apple AirportExpress).
користувач35834

@ user35834: після встановлення сервера Icecast на стороні Ubuntu ви будете незалежними на стороні приймача. Все (!), Яке може настроїтись на "Інтернет-радіо", також зможе отримувати ваш власний потік. Є багато додаткових переваг від Icecast проти RAOP.
Таккат

19

Два дні тому я натрапив на це питання і не зміг його правильно. Врешті-решт я прочитав у посібнику AirBubble, що RAOP не підтримується.

Нарешті я вирішив це за допомогою DLNA / UPnP можливостей 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 кБ / с. Будь-яка неправдива активність бездротової локальної мережі може викликати заїкання, якщо ви знаходитесь в мережі, окрім мережі 802.11 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

Скористайтеся послугою DLNA "Gst Launch", яка тепер з’явиться, коли ви запускаєте 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: підхід здається здоровим, але модуль-null-sink не приймає ці аргументи у версії 11.10. Ви маєте на увазі ще один модуль, але я його поки не можу знайти. Хороша ідея, будь ласка, допоможіть, виправивши.

Після запуску pactl load-module module-null-sink sink_name=upnp......, я отримую цю помилку: Failure: Module initalization failed. Будь-яка ідея?
Хуршид Алам

@KhurshidAlam: Спробуйте мій підхід, він не має редагування тексту і покладається лише на встановлене робоче вино.
Янус Троельсен

@JanusTroelsen: Хоча ваш підхід працює, я наголошу, що спершу слід спробувати інші методи. Вино - чудовий проект, але його слід використовувати лише в крайньому випадку. Це ненадійно.
Тості

1

Shairplay не підтримує TCP, а raop_play (я думаю, що pulseaudio-module-raop заснований на цьому) не підтримує UDP. Чому Raop є лише TCP - це дивно, UDP здається більш простим і підходящим протоколом.

І якщо ви джерелом є flac, то Icecast через MP3 буде вбивати якість, плюс це більше свиня CPU. MPD в основному підтримує імпульсний вихід, щоб ви могли "включати та вимикати" різні кімнати будинку, використовуючи, наприклад, телефон Android з додатком mpdroid. Якби ви могли використовувати док-станції для гри в якості кінцевих точок, ви мали б фантастичну настройку. Але ви не можете cos raop не підтримує більш прості кінцеві точки UDP!


1

Ви можете заглянути за межі спільноти Pulseaudio.

Я намагаюся це зробити Subsonic, щоб зробити це. Це добре працювало до цих пір. Я встановив його в моїй системі Ubuntu, своїй вітальні Roku, на своїх основних телефонах Android та на другому телефоні Android, який працює лише через wifi. Всі ці пристрої підключені через wifi. Я також планую встановити його на машині 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.