Как я могу воспроизвести системный звук с Python?

8

Я пишу небольшое приложение-напоминание и хочу воспроизвести системный звук после того, как таймер достигнет 0. Какой самый простой способ воспроизвести этот звук и какой звук вы бы порекомендовали?

Инго
источник

Ответы:

15

Самый простой способ - это раскошелиться:

system("/usr/bin/canberra-gtk-play --id='bell'")

Это будет работать и на других языках программирования.

/usr/bin/canberra-gtk-playбудет воспроизводить звук из текущей звуковой темы. См. Спецификацию именования звуков freedesktop.org для получения списка доступных звуков и их значений. Помните, что (насколько я знаю) нет звуковой темы, которая обеспечивает все эти звуки.

Используйте, ls /usr/share/sounds/ubuntu/stereoчтобы увидеть, какие звуки поддерживаются звуковой темой 'ubuntu', которая используется по умолчанию и редко изменяется (из-за отсутствия простого способа установки звуковых тем) в Ubuntu.

dv3500ea
источник
Спасибо! У вас есть подсказка, где я могу найти больше идентификаторов? Потому что «колокол» меня не очень устраивает.
Инго
Смотрите обновленный ответ.
dv3500ea
6
В целях безопасности я рекомендую использовать subprocess. Строковое выполнение может привести к опасным ситуациям. Например:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook
@ Kee Cook, пожалуйста, объясните, как выполнение вышеуказанной команды через system () может привести к «опасным ситуациям».
Cerin