From be27763f8be0f647cbe17ecee8c782901ce2cede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 18 Jun 2016 22:13:19 +0200 Subject: Move classes to separate file --- helpers/music_file.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 helpers/music_file.py (limited to 'helpers/music_file.py') diff --git a/helpers/music_file.py b/helpers/music_file.py new file mode 100644 index 0000000..39b0566 --- /dev/null +++ b/helpers/music_file.py @@ -0,0 +1,35 @@ +import threading +import pydub +import pygame + +class MusicFile: + def __init__(self, filename, lock): + self.filename = filename + self.channel = None + self.raw_data = None + self.sound = None + + self.loaded = False + threading.Thread(target = self.load_sound, args = [lock]).start() + + def load_sound(self, lock): + lock.acquire() + print("Loading {}".format(self.filename)) + self.raw_data = pydub.AudioSegment.from_file(self.filename).raw_data + self.sound = pygame.mixer.Sound(self.raw_data) + print("Loaded {}".format(self.filename)) + self.loaded = True + lock.release() + + def play(self): + self.channel = self.sound.play() + + def pause(self): + if self.channel is not None: + self.channel.pause() + + def stop(self): + self.channel = None + self.sound.stop() + + -- cgit v1.2.3