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);
|
sendPositionToCore(lastPosition);
|
||||||
seek(target_position);
|
seek(target_position);
|
||||||
playedFrom = target_position;
|
playedFrom = target_position;
|
||||||
|
savePlaybackAfterStopTimer.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
onPlaybackStateChanged: {
|
onPlaybackStateChanged: {
|
||||||
|
@ -91,9 +92,29 @@ MediaPlayer {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sendPositionToCore(lastPosition);
|
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 {
|
property var seekAfterPlayTimer: Timer {
|
||||||
interval: 100
|
interval: 100
|
||||||
repeat: true
|
repeat: true
|
||||||
|
|
3
main.py
3
main.py
|
@ -289,6 +289,8 @@ class gPotherSide:
|
||||||
|
|
||||||
self.core.save()
|
self.core.save()
|
||||||
|
|
||||||
|
def save_playback_state(self):
|
||||||
|
self.core.save()
|
||||||
|
|
||||||
@run_in_background_thread
|
@run_in_background_thread
|
||||||
def check_for_episodes(self):
|
def check_for_episodes(self):
|
||||||
|
@ -382,3 +384,4 @@ rename_podcast = gpotherside.rename_podcast
|
||||||
change_section = gpotherside.change_section
|
change_section = gpotherside.change_section
|
||||||
report_playback_event = gpotherside.report_playback_event
|
report_playback_event = gpotherside.report_playback_event
|
||||||
mark_episodes_as_old = gpotherside.mark_episodes_as_old
|
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