играть в mp3 звуковые буферы на Linux - PullRequest
1 голос
/ 24 октября 2011

Я хочу иметь возможность проигрывать аудио-звуковой буфер mp3 в Linux, который я получаю через определенный порт.Это непрерывный прямой эфир.Я смотрел на pulseaudio, portaudio, mpg123 среди многих других, но, похоже, не знаю, что делать.

Звук mp3 принимается с другого компьютера в сети, где он конвертируется с использованием naudio и lame.Если я получаю звук на ПК с Windows, я могу просто воспроизвести его, используя предоставляемую naudio dll в C #.Но я не уверен, как обойти это в Linux.

Любые предложения будут с благодарностью.

Заранее спасибо,

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Вы можете использовать mpg321 напрямую с nc (netcat).

  • Отправьте ваш поток на определенный порт на определенном хосте: nc 192.168.1.55 4455 <example.mp3
  • Прослушивание порта с помощью nc и перенаправление потока на mpg321, который воспроизводит поток напрямую: nc -l 4455 | mpg321 -
1 голос
/ 25 октября 2011

Вы смотрели на madplay?

Может считывать данные MP3 со стандартного входа.Вы можете перенаправить данные, которые вы читаете из сокета, на стандартный ввод madplay с помощью простой программы или даже с помощью команды оболочки:

netcat <hostname> <portname> | madplay - -o wave:- | aplay

Вышеописанное будет работать, если вы используете alsa в linuxbox.

Если быть более точным, на моей машине я могу сделать следующее:

  • Потоковая передача mp3-файла через сокет TCP с помощью netcat:

    cat ~/Music/Linkin\ Park/06\ Demos\,\ Unreleased\ \&\ Other/1997\ -\ Xero/04\ -\ Stick\ N\ Move.mp3 | netcat -l localhost -p 8899

  • Подключитесь к порту и прочитайте данные MP3 с помощью netcat и направьте поток в madplay:

    netcat localhost 8899 | madplay - -o wave:- | aplay

...