2013-09-11 5 views
3

У меня есть small Python library для аудиопоследовательности, и в настоящее время библиотека записывает необработанные данные волны на диск, которые я могу затем подать на что-то вроде afplay, чтобы воспроизвести звук.Поток аудио из именованной трубы

Мне любопытно, однако, если я могу воспроизводить аудио прямо из памяти. Я попытался создать именованный канал (поскольку afplay требует имя файла, поскольку это первый аргумент), но, к сожалению, он выдает ошибку Error: AudioFileOpen failed ('typ?').

Есть ли простой способ передачи звука из именованного канала? Есть ли лучший способ добиться того, что я пытаюсь сделать?

ответ

3

Вы можете использовать игру SoX, или FFmpeg 's ffplay.

Пример с Сокс:

yourcommand | play -t wav - 

Аргумент -t зависит от аудиовыхода типа ваша команда делает.

Пример ffplay:

yourcommand | ffplay - 

Аналогично с именованными трубами:

mkfifo /tmp/fifo 
yourcommand > /tmp/fifo 

sox -t wav /tmp/fifo ## on another shell or terminal 
Смежные вопросы