Problemas con el sonido

Necesito ayuda en mi juego no puedo hacer que funcione los botones así que hice que el sonido funcione cuando se toque clic en arranque la música pero tengo el problema que si apreto mas de una vez la música inicia multiples veces les pido ayuda, haber si alguien puede decir como hacer para que solo arranque la música una vez sin importar cuantas veces toque clic, o alguna forma de hacer para que la musica arranque al comenzar el juego por que no se como hacerlo. Acá les paso mi código para que vean como lo tengo hecho:

import pilasengine
pilas = pilasengine.iniciar()
tiempo = 50
contador = pilas.actores.Texto(“50”)
contador.x = 300
contador.y = 230

music = pilas.sonidos.cargar(“untitled.wav”)

def musica(evento):
music.reproducir()

pilas.escena_actual().click_de_mouse.conectar(musica)

winner = pilas.actores.ActorInvisible()
winner.escala = 0.2
winner.x = -308
winner.y = 226

###Grilla_Prota###
class Mini(pilasengine.actores.Actor):

def iniciar(self):
    self.imagen = pilas.imagenes.cargar_animacion("emilio.png",4,4)
    self.escala = 0.60
    self.imagen.definir_animacion('parado', [2], 10)
    self.imagen.definir_animacion('sur', [4,5,6,7], 10)
    self.imagen.definir_animacion('caminar', [12,13,14,15], 10)
    self.imagen.definir_animacion('norte', [0,1,2,3], 10)
    self.figura = self.pilas.fisica.Rectangulo(305, -228, 10)
    self.figura.escala_de_gravedad = 0
    self.figura.sin_rotacion = True
   

    self.hacer_inmediatamente('ComportamientoNormal')

###Movimiento_Figura_fisica###
def actualizar(self):
velocidad = 2
self.x = self.figura.x
self.y = self.figura.y

    if self.pilas.control.arriba:
        self.figura.velocidad_y = velocidad
    if self.pilas.control.abajo:
        self.figura.velocidad_y = -velocidad
    if self.pilas.control.derecha:
        self.figura.velocidad_x = velocidad
        self.espejado = False
    elif self.pilas.control.izquierda:
        self.figura.velocidad_x = -velocidad
        self.espejado = True
    else:
        self.figura.velocidad_x = 0

#####estas dos lineas son el seguimiento con la camara#####
pilas.escena_actual().camara.x=self.x
pilas.escena_actual().camara.y=self.y
######Limite_Mapa########
if self.x > 305:
self.x = 305

    if self.x < -305:
        self.x = -305
        
    if self.y > 228:
        self.y = 228
    
    if self.y < -228:
        self.y = -228

    self.imagen.avanzar()

####Clases_Movimiento####
class ComportamientoNormal(pilasengine.comportamientos.Comportamiento):

def iniciar(self, receptor):
    self.receptor = receptor
    self.receptor.imagen.cargar_animacion('parado')

####esta linea de aqui es el aumento#######
pilas.camara.escala = 6

def actualizar(self):
    self.receptor.figura.velocidad_x = 0
    self.receptor.figura.velocidad_y = 0

    if pilas.control.derecha or pilas.control.izquierda:
        self.receptor.hacer_inmediatamente('ComportamientoCaminar')
		
    if pilas.control.arriba:
        self.receptor.hacer_inmediatamente('ComportamientoNorte')
        
    if pilas.control.abajo:
        self.receptor.hacer_inmediatamente('ComportamientoSur')

class ComportamientoCaminar(pilasengine.comportamientos.Comportamiento):

def iniciar(self, receptor):
    self.receptor = receptor
    self.receptor.imagen.cargar_animacion('caminar')

def actualizar(self):
    if not pilas.control.derecha and not pilas.control.izquierda:
        self.receptor.hacer_inmediatamente('ComportamientoNormal')

class ComportamientoNorte(pilasengine.comportamientos.Comportamiento):

def iniciar(self, receptor):
    self.receptor = receptor
    self.receptor.imagen.cargar_animacion('norte')

def actualizar(self):
    if not pilas.control.arriba:
        self.receptor.hacer_inmediatamente('ComportamientoNormal')

    if  pilas.control.derecha and pilas.control.izquierda:
        self.receptor.hacer_inmediatamente('ComportamientoCaminar')	       

class ComportamientoSur(pilasengine.comportamientos.Comportamiento):

def iniciar(self, receptor):
    self.receptor = receptor
    self.receptor.imagen.cargar_animacion('sur')

def actualizar(self):
    if not pilas.control.abajo:
        self.receptor.hacer_inmediatamente('ComportamientoNormal')

    if  pilas.control.derecha and pilas.control.izquierda:
        self.receptor.hacer_inmediatamente('ComportamientoCaminar')

def descontar_tiempo():
global tiempo

tiempo = tiempo - 1    
# Si puede seguir jugando, reducimos el contador.
if tiempo > 0:
    contador.texto = str(tiempo) # tiempo es un numero, asi que lo tenemos que convertir a texto con str.
# Si es tiempo de perder.
if tiempo == 0:
    mini.eliminar()
    contador.eliminar()
    texto = pilas.actores.Texto("Game Over")

le indicamos a pilas que llame a la funcion cada 1 segundo

pilas.tareas.siempre(1, descontar_tiempo)
###Vinculaciones###
pilas.comportamientos.vincular(ComportamientoNormal)
pilas.comportamientos.vincular(ComportamientoCaminar)
pilas.comportamientos.vincular(ComportamientoNorte)
pilas.comportamientos.vincular(ComportamientoSur)

pilas.actores.vincular(Mini)

mini = pilas.actores.Mini()

fondo = pilas.actores.MapaTiled(‘laberinto_i2.tmx’)
fondo.z = 100

pilas.fondos.Cesped()

pilas.avisar(“resulve el laberinto antes que termine el tiempo”)

pilas.ejecutar()