31

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

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

Я попробовал модуль raop Pulseaudio (и включил его в paprefs) + приложение Android AirBuddle, но звук не передается (pulaudio видит, что подключается к AirBuddle, но звук не воспроизводится, в некоторых программах возникает сбой соединения, в некоторых в других программах звук застрял).

5 ответов5

20

Существует очень простое решение, потому что 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 и транслировать его вместо этого.

12

Вы можете использовать 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}'
8

Для потоковой передачи аудиосигнала через Wi-Fi на телефон Android необходимо установить серверное программное обеспечение, которое отправляет звук, на ПК и клиентское программное обеспечение на устройстве Android. Доступные варианты

WiFi Audio Беспроводной динамик

Запустите приложение Wi-Fi для Android и нажмите «Пуск», после чего вы увидите IP-адрес мобильного устройства, после чего запустите приложение Windows/Linux и введите IP-адрес мобильного устройства в поле IP-адреса, а затем нажмите «Пуск» в приложении для ПК. Теперь все аудио, поступающие с ПК, будут отправлены на мобильное устройство, и вы услышите звук на мобильном устройстве.
Скачать

SoundWire

Беспроводная передача любой музыки или звука с вашего ПК на телефон, планшет или другой компьютер Android
Главная страница также см.

Другие полезные ссылки
XBMC android SE

0

Для тех из вас, кто использует Soundwire и отправляет Wi-Fi со своего ноутбука или ПК, используя ifconfig, убедитесь, что вы используете правильный IP-адрес. Это все еще работает и по сей день, но большинству дистрибутивов Linux нужен второй адаптер Wi-Fi для отправки Wi-Fi, и вы должны использовать тот, к которому подключен ваш Android. не тот, кто получает интернет. Тот, кто отправляет это OUT.

т.е. -> Если вы используете адаптер Wi-Fi "A" для подключения к Интернету и "B" для отправки Wi-Fi из "A", подключите SoundWire на Android к "B", а не "A".

SoundWire НЕ будет подключаться или выполнять потоковую передачу, если вы подключитесь к адаптеру, не отправляющему Wi-Fi, поэтому, соответственно, введите свой IP-адрес в свои приложения Andoroid, используя соответствующую команду терминала ifconfig.

Да, есть задержка, но это приложение, SoundWire, является самой простой системой «multi-connect to ip and забыть». Нет сумасшедших меню, чтобы пройти. И да, он принимает более одного подключения. Я использовал 2 на днях. Он добавляет количество устройств, подключенных к нему, в главном окне устройства, отправляющего передачу.

Используя это лично в качестве многокомнатной / короткой дистанционной системы Wi-Fi у меня дома и по сей день.

Наслаждаться.

-4

Вау, это старое ...

В любом случае, используйте VLC. Красивые графические интерфейсы.

  • Запустите VLC на вашем рабочем столе.
  • Нажмите "Поток", выберите файл (добавьте сколько угодно файлов), нажмите "Поток".
  • "Далее", если все правильно.
  • Для New Destination выберите "http" (или что вы хотите использовать). Выберите Отображать локально, если вы хотите воспроизвести его на той машине, с которой вы также транслируете. Следующие несколько диалогов не требуют пояснений.

Запустите VLC на вашем устройстве Android. Нажмите значок рядом с кнопкой поиска (стрелка, указывающая на точку). введите http://<IP ADDRESS O OF THE MACHINE RUNNING VLC>:8080/ для меня это было http://xxx.ca:8080/

Проверено и работает. Можно ли сделать это в древние времена 9 июня 13 года? Возможно, но мне лень проверять логи коммитов VLC;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .