Skip to content

Commit f14f154

Browse files
pannalruuk
authored andcommitted
Ensure paused state is retained after seeking or changing video settings
1 parent e0f2625 commit f14f154

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

lib/player.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,9 @@ def seek(self, offset, settings_changed=False, seeking=SEEK_IN_PROGRESS):
271271

272272
self.seeking = self.SEEK_IN_PROGRESS
273273

274+
if self.player.playState == self.player.STATE_PAUSED:
275+
self.player.pauseAfterPlaybackStarted = True
276+
274277
util.DEBUG_LOG('New player offset: {0}'.format(self.offset))
275278
self.player._playVideo(offset, seeking=self.seeking, force_update=settings_changed)
276279

@@ -286,7 +289,6 @@ def rewind(self):
286289
def seekAbsolute(self, seek=None):
287290
self.seekOnStart = seek or self.seekOnStart
288291
if self.seekOnStart is not None:
289-
self.player.control('play')
290292
seekSeconds = self.seekOnStart / 1000.0
291293
try:
292294
if seekSeconds >= self.player.getTotalTime():
@@ -624,6 +626,7 @@ def init(self):
624626
self._closed = False
625627
self._nextItem = None
626628
self.started = False
629+
self.pauseAfterPlaybackStarted = False
627630
self.video = None
628631
self.hasOSD = False
629632
self.hasSeekOSD = False
@@ -648,11 +651,13 @@ def reset(self):
648651
self.video = None
649652
self.started = False
650653
self.playerObject = None
654+
self.pauseAfterPlaybackStarted = False
651655
self.handler = AudioPlayerHandler(self)
652656
self.currentTime = 0
653657

654658
def control(self, cmd):
655659
if cmd == 'play':
660+
self.pauseAfterPlaybackStarted = False
656661
util.DEBUG_LOG('Player - Control: Command=Play')
657662
if xbmc.getCondVisibility('Player.Paused | !Player.Playing'):
658663
util.DEBUG_LOG('Player - Control: Playing')
@@ -874,6 +879,10 @@ def onPrePlayStarted(self):
874879

875880
def onPlayBackStarted(self):
876881
self.started = True
882+
if self.pauseAfterPlaybackStarted:
883+
self.control('pause')
884+
self.pauseAfterPlaybackStarted = False
885+
877886
util.DEBUG_LOG('Player - STARTED')
878887
self.trigger('playback.started')
879888
if not self.handler:
@@ -890,6 +899,7 @@ def onPlayBackResumed(self):
890899
util.DEBUG_LOG('Player - RESUMED')
891900
if not self.handler:
892901
return
902+
893903
self.handler.onPlayBackResumed()
894904

895905
def onPlayBackStopped(self):

lib/windows/seekdialog.py

-4
Original file line numberDiff line numberDiff line change
@@ -654,13 +654,9 @@ def doSeek(self, offset=None, settings_changed=False):
654654
self._applyingSeek = True
655655
self.resetSkipSteps()
656656
self.updateProgress()
657-
state_before_seek = self.player.playState
658657

659658
try:
660659
self.handler.seek(self.selectedOffset if offset is None else offset, settings_changed=settings_changed)
661-
662-
if state_before_seek == self.player.STATE_PAUSED:
663-
self.player.control("pause")
664660
finally:
665661
self._seeking = False
666662
self._seekingWithoutOSD = False

0 commit comments

Comments
 (0)