X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=helpers%2Fmusic_file.py;h=f6b0117d1f1bf71f67d6d9973c1e9b80b7ecf226;hb=d479af33afa54fee7c22701c6012a1579ead395f;hp=5101f7f4c7232175a243d5445e8c9551bc58e950;hpb=23b7e0e5daf024e87d967ede3dfe6777a07e7469;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/music_file.py b/helpers/music_file.py index 5101f7f..f6b0117 100644 --- a/helpers/music_file.py +++ b/helpers/music_file.py @@ -3,9 +3,9 @@ import pydub import pygame class MusicFile: - def __init__(self, filename, lock): + def __init__(self, filename, lock, channel_id): self.filename = filename - self.channel = None + self.channel_id = channel_id self.raw_data = None self.sound = None @@ -22,7 +22,7 @@ class MusicFile: lock.release() def is_playing(self): - return self.channel is not None and self.channel.get_busy() + return self.channel().get_busy() def play(self, fade_in = 0, volume = 100, start_at = 0): self.set_volume(volume) @@ -36,18 +36,16 @@ class MusicFile: else: self.sound = pygame.mixer.Sound(self.raw_data) - self.channel = self.sound.play(fade_ms = fade_in * 1000) + self.channel().play(self.sound, fade_ms = fade_in * 1000) def pause(self): - if self.channel is not None: - self.channel.pause() + self.channel().pause() def stop(self, fade_out = 0): - self.channel = None if fade_out > 0: - self.sound.fadeout(fade_out * 1000) + self.channel().fadeout(fade_out * 1000) else: - self.sound.stop() + self.channel().stop() def set_volume(self, value): if value < 0: @@ -58,3 +56,6 @@ class MusicFile: def wait_end(self): pass + + def channel(self): + return pygame.mixer.Channel(self.channel_id)