73

Я хотел бы создать систему сигнализации с поддержкой окна Ubuntu (без графического интерфейса), которое воспроизводит различные звуковые дорожки объявлений и сигналов тревоги (.mp3 или .wav) через командную строку.

Например:

$ root> audioplay ./hello.wav

Звук должен поступать из аудиоразъема ПК. Я мог бы также обернуть это другим слушателем сокета. (например, Руби Синатра)

Есть идеи, как я могу это сделать?

8 ответов8

63

Команда play из пакета sox будет воспроизводить любой формат файла, поддерживаемый sox с использованием аудиоустройства по умолчанию, например

$ play something.mp3
$ play something.wav

Вам может потребоваться установить дополнительные пакеты для получения поддержки всех форматов, например, в Ubuntu 11.04 поддержка MP3 недоступна, пока вы не установите libsox-fmt-mp3 .

51

Самый стандартный способ воспроизведения WAV-файла в Linux - использование команды aplay , которая является частью системы ALSA .

aplay [flags] [filename [filename]] ...

aplay a.wav

Ссылки: (Википедия) (man-страница aplay)

(В Fedora это часть alsa-utils , а в Ubuntu пакет, вероятно, имеет то же имя.)

Для этого не требуется никаких дополнительных пакетов, таких как sox, mplayer или vlc, только ALSA.

47

mpg123 - это утилита командной строки, которая воспроизводит mp3-файлы. Вы можете установить его в Ubuntu с помощью:

sudo apt-get install mpg123
20

Установите vlc , используя:

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

Убедитесь, что у вас есть все открытые репозитории. Также запустите следующее перед установкой:

sudo apt-get update

VLC имеет метод операции командной строки, вызываемый cvlc . Следующей частью будет написать .sh который будет вызывать команду. Я не очень хорош в написании сценариев bash. Конечный результат будет примерно таким:

cvlc xyz.mp3
cvlc --play-and-exit done.mp3 
7

mplayer - еще один плеер, который может воспроизводить практически любой аудио / видео формат из командной строки. чтобы установить его в Ubuntu, просто выполните эту команду:

sudo apt-get install mplayer

Затем вы можете воспроизвести файл, используя этот синтаксис:

mplayer [path to file]

удачи!

7

Вы можете просто передать ваши звуковые данные на динамик компьютера:

cat rawsound | /dev/pcsp
5

На Ubuntu 16.04 ничего устанавливать не нужно. Вы можете воспроизводить звук, используя paplay [audio] частью звукового сервера PulseAudio:

paplay mysound.mp3
0

канберра-GTK-игра

Для простых скриптов bash mplayer, вероятно, слишком тяжелый и многословный с точки зрения вывода. Встроенная опция - canberra-gtk-play которая предустановлена в Ubuntu:

canberra-gtk-play --file=/usr/share/sounds/gnome/default/alerts/drip.ogg

Примечание: он использует объем предупреждений, и вы должны передать --file= , чтобы воспроизвести файл с пути.

Он также может воспроизводить звук по идентификатору, который представляет имя файла без расширения медиа-файлов в каталоге /usr/share/sounds (очевидно, это работает только для звуков, которые зарегистрированы как часть звуковой темы):

canberra-gtk-play --id="desktop-login"

canberra-gtk-play --id="message"

GST-старт-1.0/ GST-старт-0,10

Другой вариант - использовать инструменты командной строки gstreamer , которые присутствуют в большинстве современных Linux-пакетов:

gst-launch-1.0 playbin uri=file:///usr/share/sounds/ubuntu/stereo/message.ogg

Чтобы подавить весь вывод, перенаправьте его в /dev/null:

gst-launch-1.0 playbin uri=file:///usr/share/sounds/ubuntu/stereo/message.ogg > /dev/null 2>&1

И gst-launch-1.0 и gst-launch-0.10 могут присутствовать в вашей системе.

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