File tree Expand file tree Collapse file tree 2 files changed +49
-1
lines changed
Expand file tree Collapse file tree 2 files changed +49
-1
lines changed Original file line number Diff line number Diff line change 55try :
66 from pygame import mixer
77except ImportError :
8- print ("pygame is needed for audio playback " )
8+ print ("pygame is needed for timer: MusicTimer " )
99
1010
1111class MusicTimer (BaseTimer ):
Original file line number Diff line number Diff line change 1+ from demosys .conf import settings
2+ from .base import BaseTimer
3+
4+ try :
5+ import vlc
6+ except ImportError :
7+ print ("python-vlc is needed for timer: VLCTimer" )
8+
9+
10+ class VLCTimer (BaseTimer ):
11+ """Timer based on music"""
12+ def __init__ (self , ** kwargs ):
13+ self .player = vlc .MediaPlayer (settings .MUSIC )
14+ self .paused = True
15+ self .pause_time = 0
16+ self .initialized = False
17+ super ().__init__ (** kwargs )
18+
19+ def start (self ):
20+ """Start the timer and music"""
21+ self .player .play ()
22+ self .paused = False
23+
24+ def pause (self ):
25+ self .pause_time = self .get_time ()
26+ self .paused = True
27+ self .player .pause ()
28+
29+ def toggle_pause (self ):
30+ """Toggle pause mode"""
31+ if self .paused :
32+ self .start ()
33+ else :
34+ self .pause ()
35+
36+ def stop (self ):
37+ """Stop the music and the timer"""
38+ self .player .stop ()
39+ return self .get_time ()
40+
41+ def get_time (self ):
42+ """Get the current time in seconds"""
43+ # Hack around inaccuracy in mixer
44+ if self .paused :
45+ return self .pause_time
46+
47+ time = self .player .get_time () / 1000.0
48+ return time
You can’t perform that action at this time.
0 commit comments