aboutsummaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
authorAnton Schubert2017-12-28 12:27:51 +0100
committerMaZderMind2018-01-24 23:37:34 +0100
commit870bacae02c922c795b2af4e39839c279168768b (patch)
treea5c00c247df0d718ad5f0135f5702575bdc996f6 /template
parentd29fa327630533e31a0b7bdea3c8bc25ef19e5ac (diff)
serve simple webm as fallback for multiquality player
Diffstat (limited to '')
-rw-r--r--template/assemblies/player/dash.phtml30
1 files changed, 21 insertions, 9 deletions
diff --git a/template/assemblies/player/dash.phtml b/template/assemblies/player/dash.phtml
index ddfc48a..f447c09 100644
--- a/template/assemblies/player/dash.phtml
+++ b/template/assemblies/player/dash.phtml
@@ -36,9 +36,9 @@
});
}
- var createPlayer = function(url) {
- var player = new Clappr.Player({
- source: url,
+ var createPlayer = function(sources) {
+ return new Clappr.Player({
+ sources: sources,
width: "100%",
plugins: [DashShakaPlayback, LevelSelector, AudioSelector],
shakaConfiguration: {
@@ -74,12 +74,24 @@
});
}
- // Detect WebM capability, Select relay, Create player
- var hasWebM = document.createElement('video').canPlayType('video/webm') != "";
- var cdnUrl = hasWebM ? '<?=h($room->getDashManifestUrl())?>' : '<?=h($room->getHLSPlaylistUrl())?>';
- selectRelay(cdnUrl, function(relayUrl) {
- createPlayer(relayUrl);
- });
+ var hasMSE = 'MediaSource' in window,
+ hasWebM = document.createElement('video').canPlayType('video/webm') != "",
+ nativeHLS = document.createElement('video').canPlayType('application/vnd.apple.mpegURL') != "";
+
+ // Play Multiquality only if supported
+ if (hasMSE || nativeHLS) {
+ // Detect WebM capability, Select relay, Create player
+ var cdnUrl = hasWebM ? '<?=h($room->getDashManifestUrl())?>' : '<?=h($room->getHLSPlaylistUrl())?>';
+ selectRelay(cdnUrl, function(relayUrl) {
+ createPlayer([{source: relayUrl}]);
+ });
+ } else {
+ // Default to simple WebM playback
+ var player = createPlayer([{
+ source: "<?=h($stream->getVideoUrl('webm', 'hd'))?>",
+ mimeType: "video/webm"
+ }]);
+ }
}());
</script>