Python Forum

Full Version: Looping through music files (SOLVED)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

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()