Як передавати аудіовихід GNU / Linux на пристрої Android через WI-FI?


39

Я хочу передавати аудіовихід через мережу (Wi-Fi) на мої пристрої Android. Я не шукаю рішення для потокової передачі музики та відео, але передавав би будь-який аудіо вихід з мого робочого столу GNU / Linux, щоб мій Android працював як навушники Bluetooth.

Мій робочий стіл GNU / Linux - це Debian Wheezy, а звук забезпечує pulseaudio.

Я спробував модуль Raop Pulseaudio (і включив його в папрефах) + додаток AirBuddle для Android, але звук не передається в потоці (імпульсні звуки підключаються до AirBuddle, але звук не відтворюється, в деяких програмних програмах є вихід з ладу, в деяких інших програмних засобів звук застряг).

Відповіді:


27

Є дуже просте рішення, оскільки PulseAudio вже має всі необхідні інструменти.

  1. Отримайте ім'я свого вихідного пристрою за допомогою команди pactl list | grep Name
  2. Створіть такий сценарій з назвою pashare:

    #!/bin/sh
    case "$1" in
      start)
        $0 stop 
        pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=<source_name_here> record=true port=8000
        ;;
      stop)
        pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g'`
        ;;
      *)
        echo "Usage: $0 start|stop" >&2
        ;;
    esac
    
  3. Зробіть кілька перевірок та підготовки (щоб дозволити виконання сценарію та перевірити, чи порт успішно відкрився):

    chmod 755 pashare
    ./pashare start
    netstat -nlt | grep 8000 
    telnet 127.0.0.1 8000
    
  4. Завантажте та встановіть PulseDroid.apk

  5. Запустити додаток на телефоні; встановіть IP-адресу для свого комп'ютера та порту 8000.

PS Ви також можете перевірити на цій сторінці Wiki загальну інформацію про мережу потоків Pulseaudio та цю сторінку Wiki про потокову передачу RTP. Не чекайте занадто багато від трансляції сирого аудіо через WiFi; це займає величезні ширини пропускної здатності. Навіть із бездротовим маршрутизатором / AP з потужним сигналом я не зміг отримати більше, ніж заїкання аудіо з нього. Ваша найкраща ставка - це, мабуть, налаштування належного медіа-сервера (наприклад, Rygel, який добре працює з Pulseaudio) для перекодування сирого аудіо в щось на зразок MP3 та передавання потоку.


7
Це також чудово працює з цим додатком для Android: Простий програвач протоколу play.google.com/store/apps/… Зауважте, що для цього значення за замовчуванням оцінюється = 44100, тому ви можете скористатися цим.
Jannes

1
Просто для уточнення: на виході з pactl list sources short клавіші краще знайти номер вихідного параметра.
wolfmanx

4
використання pactl list | grep "Monitor Source"показує більш релевантні для мене джерела.
markroxor

18

Ви можете використовувати VLC для обслуговування MP3 потоку пульс-аудіо виходу через HTTP.
Основна перевага полягає в тому, що вам не потрібно встановлювати спеціальне програмне забезпечення на віддалений пристрій, веб-браузер (або музичний плеєр) - все, що вам потрібно для відтворення потоку. Мінусом є те, що це лише звук, затримка на кілька секунд робить його марним для відео

  1. Знайдіть вихідне ім'я pulseaudio за допомогою:

    pactl list | grep "Monitor Source" 
    
  2. Запустіть http-сервер VLC, замінивши XXXX своїм вихідним іменем:

    cvlc -vvv pulse://XXXX --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
    
  3. Якщо потрібно, знайдіть свою локальну IP-адресу ifconfig

  4. На віддаленому пристрої вкажіть веб-переглядач (або додаток для потокового аудіо) на:

    http://your.local.ip.address:8888/pc.mp3
    

Примітка: Потік не впливає на гучність, встановлену на сервері, якщо ви повністю не відключите його. Якщо потрібно, ви можете тримати рівень лише на трохи вище 0, щоб чути лише віддалений пристрій.


Перші два кроки об'єднані в один поліном polynomial_donut :

cvlc -vvv pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'

1
приголомшливий! Є 3 секунди відставання, але я задоволений цим маленьким хаком, поки не знайду цей проклятий кабель. Мені, мабуть, доведеться придбати ще один ...
Слабо

@Slabo гарний момент, я чомусь помилково припустив, що ОП хотів лише передавати музику. Відредагував мою відповідь
wilks

2
Однокласник замість двох перших рядків: cvlc -vvv pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
polynomial_donut

На потік безпосередньо впливає налаштування гучності для мене. Я просто підключаю навушники, щоб зупинити звук від ноутбука.
Рольф

До речі, як я можу зупинити відставання тривати як 1/2 години?
Рольф

9

Для передачі аудіовиходу через wifi на телефон Android ви повинні встановити серверне програмне забезпечення, яке передає аудіо, на ПК та клієнтське програмне забезпечення на пристрої Android. Доступні варіанти є

Бездротовий динамік аудіо WiFi

Запустіть додаток WiFi Audio для Android та натисніть кнопку Пуск, ви побачите IP-адресу мобільного пристрою внизу, після чого запустіть додаток Windows / Linux, і введіть IP-адресу мобільного пристрою в поле IP-адреса, а потім натисніть кнопку "Пуск" у додатку ПК. Тепер все аудіо, що виходить з ПК, буде відправлено на мобільний пристрій, і ви почуєте звук на мобільному пристрої.
Завантажити

SoundWire

Бездротові передачі будь-якої музики чи аудіо з ПК на телефон Android, планшет чи інші ПК
Домашня сторінка Також див

Інші корисні посилання
XBMC android SE


SoundWire відстає на 1-2 секунди
Gaurav Gupta

@gauravgupta Не відстає, якщо вибрати менший розмір буфера. Спробуйте також використовувати компресію. Це працювало для мене дуже добре.
гонщик

чи можете ви розмістити сюди посилання для завантаження ПК на WiFi Audio?
засіла

1
Бездротовий динамік WiFi Audio був видалений з github, і складена версія на форумах користувачі повідомляють про шкідливе програмне забезпечення. Будь обережний! Звуковий провід також виглядає рибним, від способу його поширення.
Геном

0

Для тих із вас, хто використовує Soundwire та надсилає wifi з ноутбука чи ПК, використовуючи ifconfig, ЗАВЕРШИТИ ВИКОРИСТАННЯ ПРАВИЛЬНОГО IP-АДРЕСУ. Це працює донині, але для більшості дистрибутивів Linux потрібен другий адаптер Wi-Fi, щоб відправити wifi, і вам доведеться використовувати той, до якого підключений ваш Android. не той, хто отримує Інтернет. Той, хто його надсилає.

тобто -> Якщо ви використовуєте адаптер Wi-Fi "A" для підключення до Інтернету та "B" для надсилання wifi з "A", тоді підключіть SoundWire на Android до "B", а не "A".

SoundWire НЕ підключатиметься або передаватиметься у потоці, якщо ви не підключите адаптер, не надсилаючи wifi, тому введіть свою IP-адресу у програму Andoroid відповідно, використовуючи команду термінала ifconfig відповідно.

Так, є відставання, але цей додаток SoundWire - це найпростіша система "мульти-підключення до ip і забуття" там. Немає божевільних меню, щоб пройти. І так, він приймає більше, ніж одне з'єднання. Я використовував 2 днями. Він додає кількість підключених до нього пристроїв у головному вікні пристрою, що надсилає передачу.

Використовуючи це особисто як багатокімнатну / короткометражну wifi-радіосистему в моєму місці донині.

Насолоджуйтесь.


-4

Нічого, це старе ...

У будь-якому випадку використовуйте VLC. Гарний графічний інтерфейс весь шлях.

  • Запустіть VLC на робочому столі.
  • Натисніть Потік, виберіть файл (додайте скільки завгодно файлів), натисніть потік.
  • "Далі", якщо це все правильно.
  • Для Нового пункту призначення виберіть "http" (або все, що ви хочете використовувати). Виберіть "Відображати локально", якщо ви хочете відтворити його на машині, з якої також надсилається потокова передача. Наступні кілька діалогів - це все самовияснення.

Запустіть VLC на своєму пристрої Android. Натисніть на піктограму поруч із кнопкою пошуку (стрілка вказує на крапку). введіть http://<IP ADDRESS O OF THE MACHINE RUNNING VLC>:8080/для мене це булоhttp://xxx.ca:8080/

Випробуваний та працюючий. Тепер, чи можна було це зробити в стародавній час 9 червня 13? Можливо, але я лінивий перевіряти журнали обміну VLC;)


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