set preload='none' if buffered beyond out point
This commit is contained in:
parent
d9bdf4e9b9
commit
ab17fc8496
1 changed files with 16 additions and 1 deletions
|
@ -84,6 +84,7 @@ Ox.VideoElement = function(options, self) {
|
||||||
self.paused = true;
|
self.paused = true;
|
||||||
self.seeking = false;
|
self.seeking = false;
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
|
self.buffering = true;
|
||||||
self.$videos = [getVideo(), getVideo()];
|
self.$videos = [getVideo(), getVideo()];
|
||||||
self.$video = self.$videos[self.currentVideo];
|
self.$video = self.$videos[self.currentVideo];
|
||||||
self.video = self.$video[0];
|
self.video = self.$video[0];
|
||||||
|
@ -141,7 +142,18 @@ Ox.VideoElement = function(options, self) {
|
||||||
// metadata loaded in loadItems
|
// metadata loaded in loadItems
|
||||||
},
|
},
|
||||||
progress: function() {
|
progress: function() {
|
||||||
// not implemented
|
// stop buffering if buffered to end point
|
||||||
|
if (self.video == this && self.buffering) {
|
||||||
|
var item = self.items[self.currentItem];
|
||||||
|
Ox.range(self.video.buffered.length).forEach(function(i) {
|
||||||
|
if (self.video.buffered.start(i) <= item['in']
|
||||||
|
&& self.video.buffered.end(i) >= item.out) {
|
||||||
|
self.video.preload = 'none';
|
||||||
|
self.buffering = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
seeking: function() {
|
seeking: function() {
|
||||||
//seeking event triggered in setCurrentTime
|
//seeking event triggered in setCurrentTime
|
||||||
|
@ -232,6 +244,7 @@ Ox.VideoElement = function(options, self) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
nextVideo.src = next.src;
|
nextVideo.src = next.src;
|
||||||
|
nextVideo.preload = 'auto';
|
||||||
}
|
}
|
||||||
|
|
||||||
function setCurrentItem(item) {
|
function setCurrentItem(item) {
|
||||||
|
@ -290,10 +303,12 @@ Ox.VideoElement = function(options, self) {
|
||||||
if (self.$video.attr('src') != item.src) {
|
if (self.$video.attr('src') != item.src) {
|
||||||
self.loadedMetadata && Ox.Log('Video', 'caching next item failed, reset src');
|
self.loadedMetadata && Ox.Log('Video', 'caching next item failed, reset src');
|
||||||
self.video.src = item.src;
|
self.video.src = item.src;
|
||||||
|
self.video.preload = 'auto';
|
||||||
}
|
}
|
||||||
self.video.volume = volume;
|
self.video.volume = volume;
|
||||||
self.video.muted = muted;
|
self.video.muted = muted;
|
||||||
self.$video.css(css);
|
self.$video.css(css);
|
||||||
|
self.buffering = true;
|
||||||
Ox.Log('Video', 'sCV', self.video.src, item['in'],
|
Ox.Log('Video', 'sCV', self.video.src, item['in'],
|
||||||
self.video.currentTime, self.video.seeking);
|
self.video.currentTime, self.video.seeking);
|
||||||
isReady(self.$video, function(video) {
|
isReady(self.$video, function(video) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue