Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //var videojs = require("video.js");
  2.  
  3. //require('videojs-s3bubble-meta-overlay');
  4. //require('videojs-contrib-hls');
  5. //require('videojs-contrib-quality-levels');
  6. require("videojs-quality-picker");
  7. //require('videojs-hls-quality-selector');
  8.  
  9. function playOnEnter(e) {
  10.     if (e.keyCode == 13) {
  11.         if (dash.isPaused()) {
  12.             player.play();
  13.         } else {
  14.             player.pause();
  15.         }
  16.     }
  17. }
  18.  
  19. function getOverlay(message) {
  20.     let e = document.getElementById("s3bubble-video");
  21.     let overlay = "";
  22.     overlay += '<div style="background-color: rgba(0,0,0, 0.5);';
  23.     overlay += `width:${parseInt(e.offsetWidth)}px; height:${parseInt(e.offsetHeight)}px;"`;
  24.     overlay += `>${message}</div>`;
  25.  
  26.     return overlay;
  27. }
  28.  
  29. function getQuality() {
  30.     dash = player.dash.mediaPlayer;
  31.    let bitrates = dash.getBitrateInfoListFor("video");
  32.    let qualities = [];
  33.  
  34.    if (bitrates.length > 1) {
  35.        var autoLevel = {
  36.            id: -1,
  37.            label: "auto",
  38.            selected: dash.getAutoSwitchQualityFor("video")
  39.        };
  40.        qualities.push(autoLevel);
  41.    }
  42.  
  43.    bitrates.forEach((level, index) => {
  44.         let quality = {};
  45.         quality.id = index;
  46.         quality.selected = index === dash.getQualityFor("video");
  47.         quality.label = level.height + "p";
  48.  
  49.         qualities.push(quality);
  50.    });
  51.  
  52.    var payload = {
  53.        qualityData: {video: qualities},
  54.        qualitySwitchCallback: switchQuality
  55.    };
  56.  
  57.    player.tech_.trigger('loadedqualitydata', payload);
  58. }
  59.  
  60. function switchQuality(qualityId, trackType) {
  61.     let auto = qualityId == -1;
  62.    dash.setAutoSwitchQualityFor("video", auto);
  63.    if (!auto) {
  64.         dash.setQualityFor("video", qualityId);
  65.    }
  66. }
  67.  
  68. var dash = "";
  69.  
  70. var player = videojs('s3bubble-video');
  71.  
  72. player.ready(function() {
  73.  player.src({
  74.    src: 'http://yt-dash-mse-test.commondatastorage.googleapis.com/media/motion-20120802-manifest.mpd',
  75.    type: 'application/dash+xml'
  76.  });
  77.  
  78.  player.play();
  79.  setTimeout(getQuality,2000);
  80. });
  81.  
  82. player.overlay({
  83.     debug: true,
  84.     overlays: [{
  85.         content: getOverlay("<h1>test overlay</h1>"),
  86.         align: "top-left",
  87.         start: "pause",
  88.         end: "play"
  89.     }]
  90. });
  91.  
  92. //player.hlsQualitySelector();
  93. player.qualityPickerPlugin();
  94. //dash.on(dashjs.MediaPlayer.events["MANIFEST_LOADED"], getQuality);
  95. document.addEventListener('keyup', playOnEnter, false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement