mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-18 12:52:52 +00:00
buffering prop implemented in HTMLVideo
This commit is contained in:
parent
c0ea366fc4
commit
425e7adeb2
1 changed files with 22 additions and 1 deletions
|
|
@ -51,6 +51,13 @@ var HTMLVideo = function(containerElement) {
|
|||
|
||||
return Math.floor(videoElement.duration * 1000);
|
||||
}
|
||||
function getBuffering() {
|
||||
if (!loaded) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return videoElement.readyState < videoElement.HAVE_FUTURE_DATA;
|
||||
}
|
||||
function getVolume() {
|
||||
if (destroyed) {
|
||||
return null;
|
||||
|
|
@ -140,6 +147,9 @@ var HTMLVideo = function(containerElement) {
|
|||
function onDurationChanged() {
|
||||
events.emit('propChanged', 'duration', getDuration());
|
||||
}
|
||||
function onBufferingChanged() {
|
||||
events.emit('propChanged', 'buffering', getBuffering());
|
||||
}
|
||||
function onVolumeChanged() {
|
||||
events.emit('propChanged', 'volume', getVolume());
|
||||
}
|
||||
|
|
@ -216,6 +226,13 @@ var HTMLVideo = function(containerElement) {
|
|||
videoElement.removeEventListener('durationchange', onDurationChanged);
|
||||
videoElement.addEventListener('durationchange', onDurationChanged);
|
||||
return;
|
||||
case 'buffering':
|
||||
events.emit('propValue', 'buffering', getBuffering());
|
||||
videoElement.removeEventListener('waiting', onBufferingChanged);
|
||||
videoElement.addEventListener('waiting', onBufferingChanged);
|
||||
videoElement.removeEventListener('playing', onBufferingChanged);
|
||||
videoElement.addEventListener('playing', onBufferingChanged);
|
||||
return;
|
||||
case 'volume':
|
||||
events.emit('propValue', 'volume', getVolume());
|
||||
videoElement.removeEventListener('volumechange', onVolumeChanged);
|
||||
|
|
@ -383,6 +400,7 @@ var HTMLVideo = function(containerElement) {
|
|||
onPausedChanged();
|
||||
onTimeChanged();
|
||||
onDurationChanged();
|
||||
onBufferingChanged();
|
||||
onSubtitleTracksChanged();
|
||||
onSelectedSubtitleTrackIdChanged();
|
||||
onSubtitleDelayChanged();
|
||||
|
|
@ -402,6 +420,7 @@ var HTMLVideo = function(containerElement) {
|
|||
onPausedChanged();
|
||||
onTimeChanged();
|
||||
onDurationChanged();
|
||||
onBufferingChanged();
|
||||
updateSubtitleText();
|
||||
flushArgsQueue();
|
||||
return;
|
||||
|
|
@ -417,6 +436,8 @@ var HTMLVideo = function(containerElement) {
|
|||
videoElement.removeEventListener('timeupdate', onTimeChanged);
|
||||
videoElement.removeEventListener('durationchange', onDurationChanged);
|
||||
videoElement.removeEventListener('volumechange', onVolumeChanged);
|
||||
videoElement.removeEventListener('waiting', onBufferingChanged);
|
||||
videoElement.removeEventListener('playing', onBufferingChanged);
|
||||
containerElement.removeChild(videoElement);
|
||||
containerElement.removeChild(stylesElement);
|
||||
containerElement.removeChild(subtitlesElement);
|
||||
|
|
@ -438,7 +459,7 @@ var HTMLVideo = function(containerElement) {
|
|||
HTMLVideo.manifest = {
|
||||
name: 'HTMLVideo',
|
||||
embedded: true,
|
||||
props: ['paused', 'time', 'duration', 'volume', 'subtitleTracks', 'selectedSubtitleTrackId', 'subtitleSize', 'subtitleDelay', 'subtitleDarkBackground']
|
||||
props: ['paused', 'time', 'duration', 'volume', 'buffering', 'subtitleTracks', 'selectedSubtitleTrackId', 'subtitleSize', 'subtitleDelay', 'subtitleDarkBackground']
|
||||
};
|
||||
|
||||
module.exports = HTMLVideo;
|
||||
|
|
|
|||
Loading…
Reference in a new issue