Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How would I go about playing an alarm sound in python?

Tags:

python

tkinter

I have a clock I made and I'd like to make it an alarm clock.

like image 290
rectangletangle Avatar asked Oct 24 '10 00:10

rectangletangle


People also ask

Can Python create sounds?

It turns out that you can generate audio with nothing but the standard library of Python. The approach I used relies heavily on the itertools module.


2 Answers

Assuming you're on Windows:

import winsound
winsound.PlaySound('alert.wav')

If you're on Linux (or Mac OS X I believe), you can either use pygame or call a Linux program (like mplayer) using popen. pygame example:

import pygame
pygame.init()

pygame.mixer.music.load("alert.ogg")
pygame.mixer.music.play()
pygame.event.wait()

Example using popen, which executes a command as if you were in the terminal:

from os import popen
cmd = "mplayer alert.ogg"
popen(cmd)
like image 102
Rafe Kettler Avatar answered Oct 23 '22 07:10

Rafe Kettler


If you have the mp3play module, and plan on playing an MP3 file, you can use this simple method.

import mp3play

filename = "C:/PATH/TO/FILE.mp3"
sound = mp3play.load(filename)
sound.play()

That code will play the entire MP3 file until it is done. If you want to only play that sound for a certain amount of time, use this:

import mp3play
import time

filename = "C:/PATH/TO/FILE.mp3"
sound = mp3play.load(filename)
time.sleep(min(30, sound.seconds()))  # Plays the first 30 seconds of sound.
sound.stop()

The mp3play module can be downloaded from the Python package index

like image 35
Zac Brown Avatar answered Oct 23 '22 06:10

Zac Brown