Bagaimana saya bisa memainkan suara sistem dengan Python?

8

Saya sedang menulis aplikasi pengingat kecil dan ingin memainkan suara sistem begitu timer telah mencapai 0. Apa cara termudah untuk memainkan suara itu, dan suara mana yang akan Anda rekomendasikan?

Ingo
sumber

Jawaban:

15

Cara termudah mungkin adalah keluar:

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

Ini akan bekerja dalam bahasa pemrograman lain juga.

/usr/bin/canberra-gtk-playakan memainkan suara dari tema suara saat ini. Lihat spec penamaan suara freedesktop.org untuk daftar suara yang tersedia dan artinya. Waspadalah bahwa (sejauh yang saya tahu) tidak ada tema suara yang menyediakan semua suara ini.

Gunakan ls /usr/share/sounds/ubuntu/stereountuk melihat suara apa yang didukung oleh tema suara 'ubuntu' yang default, dan jarang berubah (karena tidak ada cara mudah untuk menginstal tema suara) di Ubuntu.

dv3500ea
sumber
Terima kasih! Apakah Anda memiliki petunjuk tentang di mana saya dapat menemukan lebih banyak id? Karena 'bel' tidak cocok untukku.
Ingo
Lihat jawaban yang diperbarui.
dv3500ea
6
Untuk keamanan, saya sarankan menggunakan subprocess. Eksekusi berbasis string dapat menyebabkan situasi berbahaya. Sebagai contoh:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook
@Kees Cook, Tolong jelaskan bagaimana menjalankan perintah di atas melalui sistem () dapat menyebabkan "situasi berbahaya".
Cerin