Как я могу воспроизвести системный звук с 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

6
В целях безопасности я рекомендую использовать subprocess. Строковое выполнение может привести к опасным ситуациям. Например:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook

@ Kee Cook, пожалуйста, объясните, как выполнение вышеуказанной команды через system () может привести к «опасным ситуациям».
Cerin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.