Wie kann ich mit Python einen System-Sound abspielen?


8

Ich schreibe eine kleine Erinnerungs-App und möchte einen System-Sound abspielen, sobald der Timer 0 erreicht hat. Was ist der einfachste Weg, diesen Sound abzuspielen, und welchen Sound würden Sie empfehlen?

Antworten:


15

Der einfachste Weg wäre wahrscheinlich, zu berappen:

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

Dies funktioniert auch in anderen Programmiersprachen.

/usr/bin/canberra-gtk-playspielt einen Sound aus dem aktuellen Soundthema ab. Siehe den freedesktop.org Klangname spec für eine Liste der verfügbaren Sound und deren Bedeutung. Beachten Sie, dass es (soweit ich weiß) kein Soundthema gibt, das all diese Sounds bietet.

Verwenden Sie ls /usr/share/sounds/ubuntu/stereodiese Option, um zu sehen, welche Sounds vom 'Ubuntu'-Soundthema unterstützt werden, das standardmäßig verwendet wird und unter Ubuntu nur selten geändert wird (da Soundthemen nicht einfach zu installieren sind).


Vielen Dank! Haben Sie einen Hinweis, wo ich weitere IDs finden kann? Weil 'Glocke' nicht wirklich zu mir passt.
Ingo

Siehe aktualisierte Antwort.
dv3500ea

6
Aus Sicherheitsgründen empfehle ich die Verwendung subprocess. Die stringbasierte Ausführung kann zu gefährlichen Situationen führen. Zum Beispiel:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook

@Kees Cook, Bitte erläutern Sie, wie die Ausführung des obigen Befehls über system () zu "gefährlichen Situationen" führen kann.
Cerin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.