Skip to content

Commit 6fc4c3d

Browse files
committed
Add getter for HLS levels
Array of HLS provider levels, which contain all possible bitrates, and may also include names and height/width, if these were specified in the manifest.
1 parent da09f30 commit 6fc4c3d

File tree

7 files changed

+51
-0
lines changed

7 files changed

+51
-0
lines changed

src/VideoJS.as

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,9 @@ package{
318318
case "level":
319319
return _app.model.level;
320320
break;
321+
case "levels":
322+
return _app.model.levels;
323+
break;
321324
case "autoLevelEnabled":
322325
return _app.model.autoLevelEnabled;
323326
break;

src/com/videojs/VideoJSModel.as

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,17 @@ package com.videojs{
575575
return 1;
576576
}
577577

578+
/**
579+
* Returns the stream levels that this content has.
580+
*/
581+
public function get levels():Array
582+
{
583+
if(_provider){
584+
return _provider.levels;
585+
}
586+
return [];
587+
}
588+
578589
/**
579590
* Returns the currently used stream level.
580591
*/

src/com/videojs/providers/HLSProvider.as

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,29 @@ package com.videojs.providers{
539539
return _hls.levels.length;
540540
}
541541

542+
/**
543+
* Should return the stream levels that this content has.
544+
*/
545+
public function get levels():Array {
546+
547+
var _levels:Array = [];
548+
549+
// _hls.levels is a Vector
550+
for (var i : Number = 0; i < _hls.levels.length; i++) {
551+
// See org.mangui.hls.model.Level
552+
_levels.push({
553+
bitrate: _hls.levels[i].bitrate,
554+
name: _hls.levels[i].name,
555+
index: _hls.levels[i].index,
556+
width: _hls.levels[i].width,
557+
height: _hls.levels[i].height,
558+
url: _hls.levels[i].url
559+
});
560+
}
561+
562+
return _levels;
563+
}
564+
542565
/**
543566
* Should return the currently used stream level.
544567
*/

src/com/videojs/providers/HTTPAudioProvider.as

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,9 @@ package com.videojs.providers{
377377
public function get numberOfLevels():int{
378378
return 1;
379379
}
380+
public function get levels():Array{
381+
return [];
382+
}
380383
public function get level():int{
381384
return 0;
382385
}

src/com/videojs/providers/HTTPVideoProvider.as

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,9 @@ package com.videojs.providers{
433433
public function get numberOfLevels():int{
434434
return 1;
435435
}
436+
public function get levels():Array{
437+
return [];
438+
}
436439
public function get level():int{
437440
return 0;
438441
}

src/com/videojs/providers/IProvider.as

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@ package com.videojs.providers{
193193
*/
194194
function get numberOfLevels():int;
195195

196+
/**
197+
* Should return the currently used stream level.
198+
*/
199+
function get levels():Array;
200+
196201
/**
197202
* Should return the currently used stream level.
198203
*/

src/com/videojs/providers/RTMPVideoProvider.as

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,9 @@ package com.videojs.providers{
396396
public function get numberOfLevels():int{
397397
return 1;
398398
}
399+
public function get levels():Array{
400+
return [];
401+
}
399402
public function get level():int{
400403
return 0;
401404
}

0 commit comments

Comments
 (0)