diff --git a/folderplayer.py b/folderplayer.py new file mode 100644 index 0000000..e16e9bc --- /dev/null +++ b/folderplayer.py @@ -0,0 +1,62 @@ +""" +lecture d'un dossier de fichiers audio / mp3 via VLC +""" + +import os, random, vlc, time + +class FolderPlayer: + + def __init__(self, path=None, randomize=True): + self.vlc = vlc.Instance() + self.list_player = self.vlc.media_list_player_new() + if path: + self.path = path + self.load_folder(path, randomize) + + def load_folder(self, folder_path, randomize=False): + files = [ os.path.join(folder_path, f) for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path,f)) and f.endswith('.mp3') ] + # print(f"found {len(files)} files in {folder_path}") + self.media_list = self.vlc.media_list_new() + if randomize: + random.shuffle(files) + for f in files: + self.media_list.add_media(f) + self.list_player.set_media_list(self.media_list) + print(f"playlist built with {self.media_list.count()} media") + + def play(self): + self.list_player.play() + self.display_title() + + def pause(self): + self.list_player.pause() + + def next(self): + self.list_player.next() + self.display_title() + + def previous(self): + self.list_player.previous() + self.display_title() + + def stop(self): + self.list_player.stop() + + def display_title(self): + player = self.list_player.get_media_player() + media = player.get_media() + print(f"playing {media.get_mrl()}") + + def get_volume(self): + return self.list_player.get_media_player().audio_get_volume() + + def set_volume(self, volume): + if volume >= 0 and volume <= 100: + print(f"setting volume to {volume}") + self.list_player.get_media_player().audio_set_volume(volume) + + def volume_up(self, step=10): + self.set_volume(self.get_volume() + step) + + def volume_down(self, step=10): + self.set_volume(self.get_volume() - step) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..38e1e7f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +# lib python à installer dans le venv +# boutons et LED de la phat-beat +phatbeat +# lecture audio via VLC +python-vlc