Has any of you experienced time delay when running your python program? My app suppose to present a sound effect and a image simultaneously right after I click button. But sometimes after I clicked the button, only the sound shows immediately, and the image doesn't show up, and I need to swipe to another window (I'm using Mac)and turn back the program window again, the image then shows. So clearly there's time lag issue. But it happens time to time. I'm not sure what's wrong in my code.
Here is my code (I shorten the original code to put it here):
self.choiceA = self.master.bind('a', self.run1)
self.choiceB = self.master.bind('l', self.run2)
def run1(self, event=None):
self.draw_confirmation_button1()
t = Timer(1, self.run1_s2)
t.start()
def run1_s2(self):
self.clickPreProcess(False)
def run2(self, event=None):
self.draw_confirmation_button2()
t = Timer(1, self.run2_s2)
t.start()
def run2_s2(self):
self.clickPreProcess(True)
def clickPreProcess(self, human_choice):
self.showResult()
def showResult(self):
#show sounds#
if self.value < 0:
pygame.mixer.init()
pygame.mixer.music.load("/Users/kezhang/Desktop/cues/sounds/loss/Trimed/2_matched.wav")
pygame.mixer.music.play()
elif self.value > 0:
pygame.mixer.init()
pygame.mixer.music.load("/Users/kezhang/Desktop/cues/sounds/wins/coin2_matched.wav")
pygame.mixer.music.play()
else:
None
#show images#
if 1<=self.value<6:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c1_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
#self.coin1 = Label(self.w, image=imgFile)
if 6<=self.value<12:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c2_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
#self.coin2 = Label(self.w, image=imgFile)
if 12<=self.value<18:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c3_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
#self.coin3 = Label(self.w, image=imgFile)
if 18<=self.value<24:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c4_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
#self.coin4 = Label(self.w, image=imgFile)
if 24<=self.value<=30:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c5_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
#self.coin5 = Label(self.w, image=imgFile)
if -1>=self.value>-6:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c1_loss_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
if -6>=self.value>-12:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c2_loss_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
if -12>=self.value>-18:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c3_loss_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
if -18>=self.value>-24:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c4_loss_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
if -24>=self.value>=-30:
imgFile = Image.open('/Users/kezhang/Desktop/cues/images/c5_loss_rs.png')
self.imDisplay = ImageTk.PhotoImage(imgFile)
self.image = self.w.create_image(653, 384, image=self.imDisplay, anchor='center')
I have used many IF/ELSE function to determine which image and sound should be shown on some conditions. Possibly that's the reason why there's time delay? Really appreciate for your help!
Thanks!