Regularly sync playback position to disk
This commit is contained in:
parent
9023235f07
commit
c1d65e3572
2 changed files with 24 additions and 0 deletions
|
@ -82,6 +82,7 @@ MediaPlayer {
|
|||
sendPositionToCore(lastPosition);
|
||||
seek(target_position);
|
||||
playedFrom = target_position;
|
||||
savePlaybackAfterStopTimer.restart();
|
||||
}
|
||||
|
||||
onPlaybackStateChanged: {
|
||||
|
@ -91,9 +92,29 @@ MediaPlayer {
|
|||
}
|
||||
} else {
|
||||
sendPositionToCore(lastPosition);
|
||||
savePlaybackAfterStopTimer.restart();
|
||||
}
|
||||
}
|
||||
|
||||
function flushToDisk() {
|
||||
py.call('main.save_playback_state', []);
|
||||
}
|
||||
|
||||
property var savePlaybackPositionTimer: Timer {
|
||||
// Save position every minute during playback
|
||||
interval: 60 * 1000
|
||||
repeat: true
|
||||
running: player.isPlaying
|
||||
onTriggered: player.flushToDisk();
|
||||
}
|
||||
|
||||
property var savePlaybackAfterStopTimer: Timer {
|
||||
// Save position shortly after every seek and pause event
|
||||
interval: 5 * 1000
|
||||
repeat: false
|
||||
onTriggered: player.flushToDisk();
|
||||
}
|
||||
|
||||
property var seekAfterPlayTimer: Timer {
|
||||
interval: 100
|
||||
repeat: true
|
||||
|
|
3
main.py
3
main.py
|
@ -289,6 +289,8 @@ class gPotherSide:
|
|||
|
||||
self.core.save()
|
||||
|
||||
def save_playback_state(self):
|
||||
self.core.save()
|
||||
|
||||
@run_in_background_thread
|
||||
def check_for_episodes(self):
|
||||
|
@ -382,3 +384,4 @@ rename_podcast = gpotherside.rename_podcast
|
|||
change_section = gpotherside.change_section
|
||||
report_playback_event = gpotherside.report_playback_event
|
||||
mark_episodes_as_old = gpotherside.mark_episodes_as_old
|
||||
save_playback_state = gpotherside.save_playback_state
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue