From ca7c8724201473ce12d57654a7ace932ddb942d7 Mon Sep 17 00:00:00 2001 From: DC Date: Fri, 20 May 2016 23:57:50 -0700 Subject: [PATCH] Save video position --- renderer/index.js | 9 +++++++++ renderer/state.js | 12 +++++++++--- renderer/views/player.js | 9 +++++---- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/renderer/index.js b/renderer/index.js index f4bccdc7..9ff80530 100644 --- a/renderer/index.js +++ b/renderer/index.js @@ -1025,6 +1025,15 @@ function openPlayerFromActiveTorrent (torrentSummary, index, timeout, cb) { : TorrentPlayer.isAudio(fileSummary) ? 'audio' : 'other' + // pick up where we left off + if (fileSummary.currentTime) { + var fraction = fileSummary.currentTime / fileSummary.duration + var secondsLeft = fileSummary.duration - fileSummary.currentTime + if (fraction < 0.9 && secondsLeft > 10) { + state.playing.jumpToTime = fileSummary.currentTime + } + } + // if it's audio, parse out the metadata (artist, title, etc) if (state.playing.type === 'audio' && !fileSummary.audioInfo) { ipcRenderer.send('wt-get-audio-metadata', torrentSummary.infoHash, index) diff --git a/renderer/state.js b/renderer/state.js index 65a6c1c5..ba660701 100644 --- a/renderer/state.js +++ b/renderer/state.js @@ -9,8 +9,7 @@ var LocationHistory = require('./lib/location-history') module.exports = { getInitialState, getDefaultPlayState, - getDefaultSavedState, - getPlayingTorrentSummary + getDefaultSavedState } function getInitialState () { @@ -63,7 +62,8 @@ function getInitialState () { /* * Getters, for convenience */ - getPlayingTorrentSummary + getPlayingTorrentSummary, + getPlayingFileSummary } } @@ -276,3 +276,9 @@ function getPlayingTorrentSummary () { var infoHash = this.playing.infoHash return this.saved.torrents.find((x) => x.infoHash === infoHash) } + +function getPlayingFileSummary () { + var torrentSummary = this.getPlayingTorrentSummary() + if (!torrentSummary) return null + return torrentSummary.files[this.playing.fileIndex] +} diff --git a/renderer/views/player.js b/renderer/views/player.js index 58e8c530..ea06c949 100644 --- a/renderer/views/player.js +++ b/renderer/views/player.js @@ -63,8 +63,10 @@ function renderMedia (state) { tracks[j].mode = (j === state.playing.subtitles.selectedIndex) ? 'showing' : 'hidden' } - state.playing.currentTime = mediaElement.currentTime - state.playing.duration = mediaElement.duration + // Save video position + var file = state.getPlayingFileSummary() + file.currentTime = state.playing.currentTime = mediaElement.currentTime + file.duration = state.playing.duration = mediaElement.duration state.playing.volume = mediaElement.volume } @@ -170,8 +172,7 @@ function renderOverlay (state) { } function renderAudioMetadata (state) { - var torrentSummary = state.getPlayingTorrentSummary() - var fileSummary = torrentSummary.files[state.playing.fileIndex] + var fileSummary = state.getPlayingFileSummary() if (!fileSummary.audioInfo) return var info = fileSummary.audioInfo