player: support HLS vod for vidme (fixes #703)
- Upgrade videojs-contrib-hls to latest version
- Update VideoJSPlayer to support "auto" quality tag to delegate to
the HLS plugin for automatic quality selection
- mediaquery change:
9f5122e031
This commit is contained in:
parent
45d0e0b4c3
commit
97231e515c
|
@ -2,7 +2,7 @@
|
||||||
"author": "Calvin Montgomery",
|
"author": "Calvin Montgomery",
|
||||||
"name": "CyTube",
|
"name": "CyTube",
|
||||||
"description": "Online media synchronizer and chat",
|
"description": "Online media synchronizer and chat",
|
||||||
"version": "3.47.2",
|
"version": "3.47.3",
|
||||||
"repository": {
|
"repository": {
|
||||||
"url": "http://github.com/calzoneman/sync"
|
"url": "http://github.com/calzoneman/sync"
|
||||||
},
|
},
|
||||||
|
|
|
@ -12,6 +12,7 @@ sortSources = (sources) ->
|
||||||
idx = 5 # 480p
|
idx = 5 # 480p
|
||||||
|
|
||||||
qualityOrder = qualities.slice(idx).concat(qualities.slice(0, idx).reverse())
|
qualityOrder = qualities.slice(idx).concat(qualities.slice(0, idx).reverse())
|
||||||
|
qualityOrder.unshift('auto')
|
||||||
sourceOrder = []
|
sourceOrder = []
|
||||||
flvOrder = []
|
flvOrder = []
|
||||||
for quality in qualityOrder
|
for quality in qualityOrder
|
||||||
|
@ -34,6 +35,12 @@ sortSources = (sources) ->
|
||||||
quality: source.quality
|
quality: source.quality
|
||||||
)
|
)
|
||||||
|
|
||||||
|
getSourceLabel = (source) ->
|
||||||
|
if source.quality is 'auto'
|
||||||
|
return 'auto'
|
||||||
|
else
|
||||||
|
return "#{source.quality}p #{source.type.split('/')[1]}"
|
||||||
|
|
||||||
waitUntilDefined(window, 'videojs', =>
|
waitUntilDefined(window, 'videojs', =>
|
||||||
videojs.options.flash.swf = '/video-js.swf'
|
videojs.options.flash.swf = '/video-js.swf'
|
||||||
)
|
)
|
||||||
|
@ -72,7 +79,7 @@ window.VideoJSPlayer = class VideoJSPlayer extends Player
|
||||||
src: source.src
|
src: source.src
|
||||||
type: source.type
|
type: source.type
|
||||||
res: source.quality
|
res: source.quality
|
||||||
label: "#{source.quality}p #{source.type.split('/')[1]}"
|
label: getSourceLabel(source)
|
||||||
).appendTo(video)
|
).appendTo(video)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
(function() {
|
(function() {
|
||||||
var CUSTOM_EMBED_WARNING, CustomEmbedPlayer, DEFAULT_ERROR, DailymotionPlayer, EmbedPlayer, FilePlayer, GoogleDrivePlayer, GoogleDriveYouTubePlayer, HLSPlayer, ImgurPlayer, LivestreamPlayer, Player, RTMPPlayer, SmashcastPlayer, SoundCloudPlayer, TYPE_MAP, TwitchPlayer, UstreamPlayer, VideoJSPlayer, VimeoPlayer, YouTubePlayer, codecToMimeType, genParam, sortSources,
|
var CUSTOM_EMBED_WARNING, CustomEmbedPlayer, DEFAULT_ERROR, DailymotionPlayer, EmbedPlayer, FilePlayer, GoogleDrivePlayer, GoogleDriveYouTubePlayer, HLSPlayer, ImgurPlayer, LivestreamPlayer, Player, RTMPPlayer, SmashcastPlayer, SoundCloudPlayer, TYPE_MAP, TwitchPlayer, UstreamPlayer, VideoJSPlayer, VimeoPlayer, YouTubePlayer, codecToMimeType, genParam, getSourceLabel, sortSources,
|
||||||
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
|
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
|
||||||
hasProp = {}.hasOwnProperty;
|
hasProp = {}.hasOwnProperty;
|
||||||
|
|
||||||
|
@ -462,6 +462,7 @@
|
||||||
idx = 5;
|
idx = 5;
|
||||||
}
|
}
|
||||||
qualityOrder = qualities.slice(idx).concat(qualities.slice(0, idx).reverse());
|
qualityOrder = qualities.slice(idx).concat(qualities.slice(0, idx).reverse());
|
||||||
|
qualityOrder.unshift('auto');
|
||||||
sourceOrder = [];
|
sourceOrder = [];
|
||||||
flvOrder = [];
|
flvOrder = [];
|
||||||
for (j = 0, len = qualityOrder.length; j < len; j++) {
|
for (j = 0, len = qualityOrder.length; j < len; j++) {
|
||||||
|
@ -490,6 +491,14 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
getSourceLabel = function(source) {
|
||||||
|
if (source.quality === 'auto') {
|
||||||
|
return 'auto';
|
||||||
|
} else {
|
||||||
|
return source.quality + "p " + (source.type.split('/')[1]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
waitUntilDefined(window, 'videojs', (function(_this) {
|
waitUntilDefined(window, 'videojs', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return videojs.options.flash.swf = '/video-js.swf';
|
return videojs.options.flash.swf = '/video-js.swf';
|
||||||
|
@ -531,7 +540,7 @@
|
||||||
src: source.src,
|
src: source.src,
|
||||||
type: source.type,
|
type: source.type,
|
||||||
res: source.quality,
|
res: source.quality,
|
||||||
label: source.quality + "p " + (source.type.split('/')[1])
|
label: getSourceLabel(source)
|
||||||
}).appendTo(video);
|
}).appendTo(video);
|
||||||
});
|
});
|
||||||
if (data.meta.gdrive_subtitles) {
|
if (data.meta.gdrive_subtitles) {
|
||||||
|
|
20
www/js/videojs-contrib-hls.min.js
vendored
20
www/js/videojs-contrib-hls.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue