libspotify: Improve playback controls by stopping before playing new track. Fix a couple of bugs.
This commit is contained in:
parent
051b79e7cb
commit
ba7a3a51e3
@ -47,22 +47,38 @@ class LibspotifyLibraryController(BaseLibraryController):
|
||||
|
||||
|
||||
class LibspotifyPlaybackController(BasePlaybackController):
|
||||
def _next(self, track):
|
||||
if self.state == self.PLAYING:
|
||||
self._stop()
|
||||
self._play(track)
|
||||
return True
|
||||
|
||||
def _pause(self):
|
||||
# TODO
|
||||
return False
|
||||
|
||||
def _play(self, track):
|
||||
if self.state == self.PLAYING:
|
||||
self._stop()
|
||||
if track.uri is None:
|
||||
return False
|
||||
self.backend.spotify.session.load(
|
||||
Link.from_string(self._current_track.uri).as_track())
|
||||
Link.from_string(track.uri).as_track())
|
||||
self.backend.spotify.session.play(1)
|
||||
return True
|
||||
|
||||
def _previous(self, track):
|
||||
if self.state == self.PLAYING:
|
||||
self._stop()
|
||||
self._play(track)
|
||||
return True
|
||||
|
||||
def _resume(self):
|
||||
# TODO
|
||||
return False
|
||||
|
||||
def _stop(self):
|
||||
self.spotify.session.play(0)
|
||||
self.backend.spotify.session.play(0)
|
||||
return True
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user