import vlc class Player: def __init__(self): self._player = vlc.MediaPlayer() def play(self): self._player.play() def stop(self): self._player.stop() def pause(self): self._player.pause() def isPlaying(self): playing = self._player.is_playing() == 1 return playing def setPlaybackRate(self, rate): self._player.set_rate(rate) def getPlaybackRate(self): return self._player.get_rate() def setPlaybackPosition(self, position): self._player.set_position(position) def getPlaybackPosition(self): return self._player.get_position() def setPlaybackVolume(self, volume): self._player.audio_set_volume(int(volume * 100)) def getPlaybackVolume(self): return self._player.audio_get_volume() / 100.0 def setCurrentSong(self, path): self._player.stop() media = vlc.Media(path) self._player.set_media(media) def setPlayingStateChangedCallback(self, callback): events = [ vlc.EventType.MediaPlayerStopped, vlc.EventType.MediaPlayerPlaying, vlc.EventType.MediaPlayerPaused ] manager = self._player.event_manager() for e in events: manager.event_attach(e, callback) def setPlaybackVolumeChangedCallback(self, callback): manager = self._player.event_manager() manager.event_attach(vlc.EventType.MediaPlayerAudioVolume, callback)