Come posso riprodurre un suono di sistema con Python?


8

Sto scrivendo una piccola app di promemoria e voglio riprodurre un suono di sistema una volta che il timer ha raggiunto lo 0. Qual è il modo più semplice per riprodurre quel suono e quale suono consiglieresti?

Risposte:


15

Il modo più semplice sarebbe probabilmente quello di sborsare:

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

Funzionerà anche in altri linguaggi di programmazione.

/usr/bin/canberra-gtk-playriprodurrà un suono dal tema sonoro corrente. Vedi le specifiche di denominazione del suono di freedesktop.org per un elenco di suoni disponibili e dei loro significati. Attenzione che (per quanto ne so) non esiste un tema sonoro che fornisca tutti questi suoni.

Utilizzare ls /usr/share/sounds/ubuntu/stereoper vedere quali suoni sono supportati dal tema audio 'Ubuntu' che è predefinito e raramente modificato (a causa di un modo semplice per installare temi sonori) su Ubuntu.


Grazie! Hai qualche idea su dove posso trovare altri ID? Perché "campana" non mi sta proprio bene.
Ingo,

Vedi la risposta aggiornata.
dv3500ea,

6
Per sicurezza, consiglio di usare subprocess. L'esecuzione basata su stringhe può portare a situazioni pericolose. Ad esempio:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook

@Kees Cook, Spiegare in che modo l'esecuzione del comando sopra tramite system () può portare a "situazioni pericolose".
Cerin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.