aboutsummaryrefslogtreecommitdiff
path: root/helpers/music_file.py
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2016-06-18 22:13:19 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2016-06-18 22:13:19 +0200
commitbe27763f8be0f647cbe17ecee8c782901ce2cede (patch)
tree30e02392fa946f92755c83454f85c4572f2d4e77 /helpers/music_file.py
parent98fee7ff51eac3660f05aefcb18bbd9c2d32c35c (diff)
downloadMusicSampler-be27763f8be0f647cbe17ecee8c782901ce2cede.tar.gz
MusicSampler-be27763f8be0f647cbe17ecee8c782901ce2cede.tar.zst
MusicSampler-be27763f8be0f647cbe17ecee8c782901ce2cede.zip
Move classes to separate file
Diffstat (limited to 'helpers/music_file.py')
-rw-r--r--helpers/music_file.py35
1 files changed, 35 insertions, 0 deletions
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 @@
1import threading
2import pydub
3import pygame
4
5class MusicFile:
6 def __init__(self, filename, lock):
7 self.filename = filename
8 self.channel = None
9 self.raw_data = None
10 self.sound = None
11
12 self.loaded = False
13 threading.Thread(target = self.load_sound, args = [lock]).start()
14
15 def load_sound(self, lock):
16 lock.acquire()
17 print("Loading {}".format(self.filename))
18 self.raw_data = pydub.AudioSegment.from_file(self.filename).raw_data
19 self.sound = pygame.mixer.Sound(self.raw_data)
20 print("Loaded {}".format(self.filename))
21 self.loaded = True
22 lock.release()
23
24 def play(self):
25 self.channel = self.sound.play()
26
27 def pause(self):
28 if self.channel is not None:
29 self.channel.pause()
30
31 def stop(self):
32 self.channel = None
33 self.sound.stop()
34
35