updateSrc for HLS

This commit is contained in:
Kasper Moskwiak 2016-04-13 23:17:17 +02:00
parent f8218598f6
commit 409007d9d7
2 changed files with 12 additions and 7 deletions

View file

@ -44,17 +44,18 @@
plugins: { plugins: {
videoJsResolutionSwitcher: { videoJsResolutionSwitcher: {
default: 'low', // Default resolution [{Number}, 'low', 'high'], default: 'low', // Default resolution [{Number}, 'low', 'high'],
dynamicLabel: true // Display dynamic labels or gear symbol dynamicLabel: true, // Display dynamic labels or gear symbol
hls: true
} }
} }
}, function(){ }, function(){
var player = this; var player = this;
window.player = player window.player = player
player.src({ player.updateSrc({
src: '//labs.tvpw.pl/video/hls/tears.m3u8', src: '//labs.tvpw.pl/video/hls/tears.m3u8',
type: 'application/x-mpegURL' type: 'application/x-mpegURL'
}) }, {hls: true})
player.on('resolutionchange', function(){ player.on('resolutionchange', function(){
console.info('Source changed to %s', player.src()) console.info('Source changed to %s', player.src())

View file

@ -170,7 +170,7 @@
* @param {Array} [src] array of sources [{src: '', type: '', label: '', res: ''}] * @param {Array} [src] array of sources [{src: '', type: '', label: '', res: ''}]
* @returns {Object|String|Array} videojs player object if used as setter or current source URL, object, or array of sources * @returns {Object|String|Array} videojs player object if used as setter or current source URL, object, or array of sources
*/ */
player.updateSrc = function(src){ player.updateSrc = function(src, _options){
//Return current src if src is not given //Return current src if src is not given
if(!src){ return player.src(); } if(!src){ return player.src(); }
// Dispose old resolution menu button before adding new sources // Dispose old resolution menu button before adding new sources
@ -179,6 +179,11 @@
delete player.controlBar.resolutionSwitcher; delete player.controlBar.resolutionSwitcher;
} }
if(_options && _options.hls){
player.src(src);
return initResolutionForHLS(player);
}
//Sort sources //Sort sources
src = src.sort(compareResolutions); src = src.sort(compareResolutions);
groupedSrc = bucketSources(src); groupedSrc = bucketSources(src);
@ -340,7 +345,6 @@
function initResolutionForHLS(player){ function initResolutionForHLS(player){
var hls = player.tech_.hls; var hls = player.tech_.hls;
// Capture events // Capture events
player.on('mediachange', function(){ player.on('mediachange', function(){
player.trigger('resolutionchange'); player.trigger('resolutionchange');
@ -410,8 +414,8 @@
// Create resolution switcher for videos form <source> tag inside <video> // Create resolution switcher for videos form <source> tag inside <video>
player.updateSrc(player.options_.sources); player.updateSrc(player.options_.sources);
} }
if(player.tech_.hls){ if(player.tech_.hls && player.options_.sources.length){
// HLS support // HLS support
initResolutionForHLS(player); initResolutionForHLS(player);
} }