blob: b9ab266e4b16252f742b314bcd54b4381abf14e0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import mpv
class Player:
def __init__(self):
self._player = mpv.MPV()
self._player.loop = "inf"
self._playingStateCallback = self._dummyCallback
self._volumeCallback = self._dummyCallback
self._player.observe_property("pause", lambda name, value: self._playingStateCallback())
self._player.observe_property("volume", lambda name, value: self._volumeCallback())
def _dummyCallback(self):
pass
def play(self):
self._player.pause = False
def pause(self):
self._player.pause = True
def isPlaying(self):
return not self._player.pause
def setPlaybackRate(self, rate):
self._player.speed = rate
def getPlaybackRate(self):
return self._player.speed
def setPlaybackPosition(self, position):
self._player.percent_pos = int(position * 100)
def getPlaybackPosition(self):
return float(self._player.percent_pos or 0.0) / 100.0
def setPlaybackVolume(self, volume):
self._player.volume = int(volume * 100)
def getPlaybackVolume(self):
return float(self._player.volume) / 100.0
def setCurrentSong(self, path):
self.pause()
self._player.play(path)
def setPlayingStateChangedCallback(self, callback):
self._playingStateCallback = callback
def setPlaybackVolumeChangedCallback(self, callback):
self._volumeCallback = callback
|