Advance playlist on end of file in mpv

This commit is contained in:
et0h 2021-03-04 01:56:48 +00:00 committed by daniel-123
parent 77ce05d02d
commit 93a3630fa0
No known key found for this signature in database
GPG Key ID: D0FED6697F1D0AC1
3 changed files with 24 additions and 1 deletions

View File

@ -500,6 +500,9 @@ class SyncplayClient(object):
return True
return self._globalPaused
def eofReportedByPlayer(self, filepath):
self.playlist.eofReportedByPlayer(filepath)
def updateFile(self, filename, duration, path):
self.lastUpdatedFileTime = time.time()
newPath = ""
@ -1963,6 +1966,11 @@ class SyncplayPlaylist():
secondsSinceLastChange = time.time() - self._lastPlaylistIndexChange
return secondsSinceLastChange > constants.PLAYLIST_LOAD_NEXT_FILE_TIME_FROM_END_THRESHOLD
def eofReportedByPlayer(self, filepath):
if self.notJustChangedPlaylist():
self._ui.showDebugMessage("Advancing to next item in playlist due to media player EOF report: {}".format(filepath))
self.loadNextFileInPlaylist()
@needsSharedPlaylistsEnabled
def loadNextFileInPlaylist(self):
if self._notPlayingCurrentIndex():

View File

@ -213,6 +213,9 @@ class MpvPlayer(BasePlayer):
else:
return self._position
def eofDetected(self, path):
self._client.eofReportedByPlayer(path)
def _storePosition(self, value):
if value is None:
self._client.ui.showDebugMessage("NONE TYPE POSITION!")
@ -420,6 +423,9 @@ class MpvPlayer(BasePlayer):
def _handleUnknownLine(self, line):
self.mpvErrorCheck(line)
if "<eof>" in line:
line = line[5:-6]
self.eofDetected(line)
if "<chat>" in line:
line = line.replace(constants.MPV_INPUT_BACKSLASH_SUBSTITUTE_CHARACTER, "\\")

View File

@ -295,6 +295,15 @@ end
chat_timer=mp.add_periodic_timer(TICK_INTERVAL, chat_update)
mp.observe_property('eof-reached', 'bool', function(e)
if mp.get_property_native("eof-reached") == true then
line = mp.get_property_native("path")
line = line.gsub(line,"\\", "\\\\")
mp.command('print-text "<eof>' .. line .. '</eof>"')
end
end)
mp.register_script_message('chat', function(e)
add_chat(e)
end)
@ -985,7 +994,7 @@ function readyMpvAfterSettingsKnown()
add_repl_alpharow_bindings(alpharowbindings)
mp.add_forced_key_binding('tab', handle_tab)
end
end
end
syncplayintfSet = true
end
end