AW: Permanent Timeshift: zurückspulen oder zurückspringen, ohne vorher "Pause" zu drü
Dann verhalten sich unsere Receiver also identisch, und das Verhalten ist auch logisch: Da die Tasten 1,4,7 für die Kanal-Direkteingabe (Quick Zap) benutzt werden, können sie im Live-Modus nicht für Sprünge verwendet werden. Erst wenn man "in der Vergangenheit" timeshifted, ist die Kanal-Direkteingabe blockiert (man möchte den Timeshift-Buffer nicht verlieren), und die Tasten sind frei für Sprünge.
It's not a bug, it's a feature, und sinnvoll.
Mein Problem beschränkt sich jetzt nur noch auf Sprünge mit
Code:
InfoBarSeek.doSeekRelative(InfoBar.instance, time_seconds * 90000)
Diese erfolgen nur, wenn ich beim Timeshift "in der Vergangenheit" bin, nicht aus dem Live-Modus heraus (aktiver Timeshift, aber bei 0:00).
Einen Hinweis auf die Ursache finde ich in der InfoBarGenerics.py:
Code:
def doSeekRelative(self, pts):
seekable = self.getSeek()
if seekable is None:
return
prevstate = self.seekstate
if self.seekstate == self.SEEK_STATE_EOF:
if prevstate == self.SEEK_STATE_PAUSE:
self.setSeekState(self.SEEK_STATE_PAUSE)
else:
self.setSeekState(self.SEEK_STATE_PLAY)
seekable.seekRelative(pts < 0 and -1 or 1, abs(pts))
if abs(pts) > 100 and config.usage.show_infobar_on_skip.value:
self.showAfterSeek()
Ich vermute ganz stark, das beim "Timeshift bei 0:00" der service nicht "seekable" ist. Für mein Plugin (
https://www.digital-eliteboard.com/...gins-zum-schnellen-%DCberspringen-von-Werbung) möchte ich (mit anderen Tasten als den Zahlen) auch aus dem Live-Modus rückwärts springen können.
Weiß jemand, wie ich den service "seekable" machen kann?
Ich habe den Eindruck, dass "setSeekState(self.SEEK_STATE_PLAY)" nur lokal in InfoBarSeek wirkt (und das angezeigte Symbol ändert), dass ich aber, um von "self.getSeek()" ein "True" zu bekommen, eine Eigenschaft des "service" ändern muss:
Code:
def getSeek(self):
service = self.session.nav.getCurrentService()
if service is None:
return
seek = service.seek()
if seek is None or not seek.isCurrentlySeekable():
return
return seek
Kann mir jemand einen Tipp geben?