2015-04-29 4 views
0

Я новичок в python и очень новичок в tkinter, и мне нужна помощь в воспроизведении звука каждый раз, когда шарик на экране перемещается. Это код, у меня естьwinsound останавливает текущую анимацию

def leftMove(Event): 
    canvas.move(circle_item2, -5, 0) 
    x1, y1, x2, y2 = canvas.coords(circle_item) 
    winsound.PlaySound('DoorSlam.wav',winsound.SND_FILENAME) 

rightMove(Event): 
canvas.move(circle_item2, 5, 0) 
x1, y1, x2, y2 = canvas.coords(circle_item) 

def upMove(Event): 
canvas.move(circle_item2, 0, -5) 
canvas.after(.1, upMove) 

def downMove(Event): 
canvas.move(circle_item2, 0, 5) 
x1, y1, x2, y2 = canvas.coords(circle_item) 

root.bind('<Left>',leftMove) 
root.bind('<Right>',rightMove) 
root.bind('<Up>',upMove) 
root.bind('<Down>',downMove) 

Проблема в том, каждый раз, когда я нажимаю левую кнопку, он останавливает все анимации, пока звук не будет сделано играть. Каков правильный способ сделать так, чтобы оба играли одновременно?

ответ

0

Воспроизведение звука в отдельном потоке, как это:

playSound = lambda: winsound.PlaySound('DoorSlam.wav',winsound.SND_FILENAME) 
t = threading.Thread(target = lambda: playSound) 
t.start()