Воспроизведение аудио приложений CLI

2

У меня есть AppleScript, который воспроизводит аудиофайлы, используя Unix-приложение Play (из hieper.nl).

Я хотел бы найти программу воспроизведения командной строки, с помощью которой я могу установить громкость, не касаясь громкости системы. EyeTV имеет собственную настройку громкости, и приятно изменять громкость EyeTV без изменения громкости системы.

Было бы неплохо, если бы я мог приостановить игру и выйти из нее каким-либо другим способом, кроме использования kill.

playmoreplayhard
источник

Ответы:

5

afplay может сделать то, что вам нужно. Это встроенная утилита, поэтому не нужно ничего скачивать или собирать.

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

Чтобы воспроизвести файл, просто запустите afplay somefile.mp3, Чтобы изменить громкость, вы можете использовать -v переключателя, за которым следует число (в моем тестировании диапазон, кажется, колеблется от 0-2, где 1 - нормальный объем) Так afplay anotherfile.m4a -v 0.5 будет играть на половине нормальной громкости.

Управление воспроизведением может быть выполнено с помощью некоторой базовой сигнализации Unix для afplay:

kill -17 <pid> # pause playback
kill -19 <pid> # resume playback

Есть также несколько других вариантов, которые вы можете увидеть, запустив afplay -h,

robmathers
источник
Спасибо Patrix для указания, как приостановить / возобновить воспроизведение.
robmathers
Я боюсь, что регулятор громкости недоступен. Когда я бегу afplay sound.wav -v 0.5 Я получил: могу указать только один файл для воспроизведения, а затем краткое описание доступных команд, в котором -v указывает «подробный» и дает технические подробности воспроизводимого звука.
1
@ Норбер, какую версию OS X вы используете? Как на 10.7, так и на 10.8, указанные мной опции действительны (и нет подробной опции) Возможно, это отличается от 10.6 или более ранней.
robmathers
Я добавил пару скриптов bash, чтобы упростить игру и паузу: function pid_for_name() { ps -A | grep -m1 $1 | awk '{print $1}' } function pause_af { kill -17 $(pid_for_name afplay) } function play_af { kill -19 $(pid_for_name afplay) } или красиво отформатирован здесь: gist.github.com/agrberg/7a09dea9a4ac545decb7
Aaron