¿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?

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.


¡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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.