¿Cómo puedo reproducir un sonido de sistema con Python?

8

Estoy escribiendo una pequeña aplicación de recordatorio y quiero reproducir un sonido del sistema una vez que el temporizador haya alcanzado 0. ¿Cuál es la forma más fácil de reproducir ese sonido y qué sonido recomendaría?

Ingo
fuente

Respuestas:

15

La forma más fácil probablemente sería pagar:

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

Esto también funcionará en otros lenguajes de programación.

/usr/bin/canberra-gtk-playreproducirá un sonido del tema de sonido actual. Consulte las especificaciones de nombres de sonido de freedesktop.org para obtener una lista de los sonidos disponibles y sus significados. Tenga en cuenta que (hasta donde yo sé) no hay un tema de sonido que proporcione todos estos sonidos.

Úselo ls /usr/share/sounds/ubuntu/stereopara ver qué sonidos son compatibles con el tema de sonido 'ubuntu', que es el predeterminado y rara vez cambia (debido a que no hay una manera fácil de instalar temas de sonido) en Ubuntu.

dv3500ea
fuente
¡Gracias! ¿Tienes alguna pista sobre dónde puedo encontrar más identificadores? Porque 'campana' realmente no me conviene.
Ingo
Ver respuesta actualizada.
dv3500ea
66
Por seguridad, recomiendo usar subprocess. La ejecución basada en cadenas puede conducir a situaciones peligrosas. Por ejemplo:import subprocess; subprocess.call(['/usr/bin/canberra-gtk-play','--id','bell'])
Kees Cook, el
@Kees Cook, explique cómo ejecutar el comando anterior a través del sistema () puede conducir a "situaciones peligrosas".
Cerin