Hi,
I just cannot understand why the below code is not looping.
It plays a song and then stops and exits.
TIA
Solved by moving lines around ;)
I just cannot understand why the below code is not looping.
It plays a song and then stops and exits.
TIA
#!/usr/bin/python3 import random, os import pygame #music files path path = "/media/usb/" #get music files songs = os.listdir(path) #filter mp3 files songs = [fi for fi in songs if fi.endswith(".mp3") ] pygame.init() pygame.mixer.init() while True: try: #pygame.mixer.music.set_volume(0.50) filename = random.choice(songs) print('playing now {}'.format(filename)) pygame.mixer.music.load(path + filename) pygame.mixer.music.play() while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10) except ValueError: print('Excemption: {}', format(ValueError)) #if __name__ == '__main__':EDIT:
Solved by moving lines around ;)
#!/usr/bin/python3 import random, os import pygame #music files path path = "/media/usb/" #get music files songs = os.listdir(path) #filter mp3 files songs = [fi for fi in songs if fi.endswith(".mp3") ] pygame.init() pygame.mixer.init() #print(pygame.mixer.get_init()) def play_songs(): try: #pygame.mixer.music.set_volume(0.50) filename = random.choice(songs) #print('playing now {}'.format(filename)) pygame.mixer.music.load(path + filename) pygame.mixer.music.play() while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10) except ValueError: print('Excemption: {}', format(ValueError)) if __name__ == '__main__': while True: play_songs()