diff --git a/src/ReactPlayer.js b/src/ReactPlayer.js index 6000b433..9ecd3ec4 100644 --- a/src/ReactPlayer.js +++ b/src/ReactPlayer.js @@ -42,6 +42,12 @@ export default class ReactPlayer extends Component { componentWillUpdate (nextProps) { this.config = getConfig(nextProps, defaultProps) } + + getSecondsLoaded = () => { + if (!this.player) return null + return this.player.getSecondsLoaded() + } + getDuration = () => { if (!this.player) return null return this.player.getDuration() diff --git a/src/players/FilePlayer.js b/src/players/FilePlayer.js index b4421cdd..26906ecb 100644 --- a/src/players/FilePlayer.js +++ b/src/players/FilePlayer.js @@ -148,9 +148,21 @@ export class FilePlayer extends Component { getCurrentTime () { return this.player.currentTime } + // This methodology was take from video.js + getBufferedEnd () { + const buffered = this.player.buffered + const duration = this.getDuration() + let end = buffered.end(buffered.length - 1) + + if (end > duration) { + end = duration + } + + return end + } getSecondsLoaded () { if (this.player.buffered.length === 0) return 0 - return this.player.buffered.end(0) + return this.getBufferedEnd() } renderSource = (source, index) => { if (typeof source === 'string') {