Plugin Directory

Changeset 2321124


Ignore:
Timestamp:
06/09/2020 08:44:47 PM (6 years ago)
Author:
muvidental
Message:

Fix FB IAB bug

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dental-education-videos/trunk/assets/muvi-fancy.js

    r2314068 r2321124  
    2424var i;
    2525for (i = 0; i < muviplayers.length; i++) {
    26    
     26
    2727    var videotopic = muviplayers[i].dataset.topic;
    2828    muviplayers[i].setAttribute("muted", "muted");
     
    3838    muviplayers[i].setAttribute("poster", "https://assets.muvidental.com/img/posters/" + videotopic + ".jpg");     // Not protected, no token needed
    3939    muviplayers[i].setAttribute("style", "max-width: 100%;");
    40    
    41    
    42    
     40
     41
     42
    4343    var uAgent = navigator.userAgent;
    4444    var isiOS = false;
    4545    var isMac = false;
     46    var isSafari = false;
     47    var useHEVC = false;
     48    var useHLSJS = true;
    4649    var osVersion = "";
    4750
    48     // Check if iOS
     51    // Checks on iOS
    4952    if (/iPad|iPhone|iPod/.test(uAgent) == true) {
    5053        isiOS = true;
     54        useHLSJS = false;
    5155        osVersion = uAgent.match(/OS (\d+)/);
     56        if (osVersion[1] >= 12) {
     57          useHEVC = true;
     58        }
    5259    }
    53     // Check if Mac OS
     60
     61    // Checks on Mac OS
    5462    if (/OS X 10[_.](\d+)/.test(uAgent) == true) {
     63        // We are on a Mac
    5564        isMac = true;
    5665        osVersion = uAgent.match(/OS X 10[_.](\d+)/);
     66        if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && !window.MSStream) {
     67          // Safari on Mac
     68          isSafari = true;
     69          useHLSJS = false;
     70
     71          if (osVersion[1] >= 12) {
     72            // Newer Safari
     73            useHEVC = true;
     74          }
     75
     76
     77        }
    5778    }
    58                
    59    
    60    
    61     if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && !window.MSStream) {
    62             // Safari specific code
    63             if (isiOS == true && osVersion[1] >= 12) {
    64                 // Send H265 master playlist to iOS 11+ Safari
    65                 muviplayers[i].src = streamPHP + '?l=1&c=hevc&v=' + videotopic;
    66                 muviplayers[i].addEventListener('canplay', function() {
    67                 // muviplayers[i].play();
    68                 });
    69             } else if (isMac == true && osVersion[1] >= 14) {
    70                 // Send H265 master playlist to Mac OS X 13+ Safari
    71                 muviplayers[i].src = streamPHP + '?l=1&c=hevc&v=' + videotopic;
    72                 muviplayers[i].addEventListener('canplay', function() {
    73                     // muviplayers[i].play();
    74                 });
    75             } else {
    76                 // Send H264 master playlist to older iDevices
    77                 muviplayers[i].src = streamPHP + '?l=1&v=' + videotopic;
    78                 muviplayers[i].addEventListener('canplay', function() {
    79                     // muviplayers[i].play();
    80                 });
    81             }
    82            
    83             // autoplay on mac
    84             if (isMac == true) {
    85                 muviplayers[i].muted = true;
    86                 muviplayers[i].volume = 0.0;
    87                 muviplayers[i].play();
    88             }
    89            
    9079
    91     } else if (Hls.isSupported()) {
    92         // Chrome, Firefox, IE, etc...
    93         var hls = new Hls(config);
    9480
    95         // Send H264 master playlist to everyone else
    96         hls.loadSource(streamPHP + '?l=1&v=' + videotopic);
    97         console.log('Break 7');
     81    //** BUILD PLAYER **//
     82    if (useHEVC == true) {
     83      // Send H265 master playlist to all iOS Browsers and Safari on Mac
     84      muviplayers[i].src = streamPHP + '?l=1&c=hevc&v=' + videotopic;
     85      muviplayers[i].addEventListener('canplay', function() {
     86        // muviplayers[i].play();
     87      });
     88    } else if (useHLSJS == false && useHEVC == false) {
     89      // Send H264 master playlist to older Safari
     90      muviplayers[i].src = streamPHP + '?l=1&v=' + videotopic;
     91      muviplayers[i].addEventListener('canplay', function() {
     92          // muviplayers[i].play();
     93      });
     94    } else {
     95      // Use HLSJS for everyone else
     96      var hls = new Hls(config);
    9897
    99         hls.attachMedia(muviplayers[i]);
    100         hls.on(Hls.Events.MANIFEST_PARSED,function() {
    101             // video.play();
    102         });
    103        
    104         muviplayers[i].muted = true;
    105         muviplayers[i].volume = 0.0;
    106         muviplayers[i].play();
    107        
     98      // Send H264 playlist
     99      hls.loadSource(streamPHP + '?l=1&v=' + videotopic);
     100      console.log('Break 7');
     101
     102      hls.attachMedia(muviplayers[i]);
     103      hls.on(Hls.Events.MANIFEST_PARSED,function() {
     104          // video.play();
     105      });
     106
     107      muviplayers[i].muted = true;
     108      muviplayers[i].volume = 0.0;
     109      muviplayers[i].play();
    108110    }
    109    
    110    
    111    
     111
     112
     113
     114
     115    // autoplay on Mac Safari
     116    if (isMac == true && isSafari == true) {
     117      muviplayers[i].muted = true;
     118      muviplayers[i].volume = 0.0;
     119      muviplayers[i].play();
     120    }
     121
     122
     123
     124
     125
    112126    // English Captions
    113127    var enTrack = document.createElement("track");
     
    118132    enTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/en.vtt";   // Not protected, no token needed
    119133    muviplayers[i].appendChild(enTrack);
    120    
     134
    121135    // Spanish Subtitles (for future implementation)
    122136    // var esTrack = document.createElement("track");
     
    127141    // esTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/es.vtt";   // Not protected, no token needed
    128142    // muviplayers[i].appendChild(esTrack);
    129    
     143
    130144    // French Subtitles (for future implementation)
    131145    // var frTrack = document.createElement("track");
     
    136150    // frTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/fr.vtt";   // Not protected, no token needed
    137151    // muviplayers[i].appendChild(frTrack);
    138    
     152
    139153    // German Subtitles (for future implementation)
    140154    // var deTrack = document.createElement("track");
     
    145159    // deTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/de.vtt";   // Not protected, no token needed
    146160    // muviplayers[i].appendChild(deTrack);
    147    
     161
    148162    // Portuguese Subtitles (for future implementation)
    149163    // var ptTrack = document.createElement("track");
     
    154168    // ptTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/pt.vtt";   // Not protected, no token needed
    155169    // muviplayers[i].appendChild(ptTrack);
    156    
     170
    157171    // Hungarian Subtitles (for future implementation)
    158172    // var huTrack = document.createElement("track");
     
    163177    // huTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/hu.vtt";   // Not protected, no token needed
    164178    // muviplayers[i].appendChild(huTrack);
    165    
     179
    166180    // Polish Subtitles (for future implementation)
    167181    // var plTrack = document.createElement("track");
     
    172186    // plTrack.src = "https://assets.muvidental.com/vtt/" + videotopic + "/pl.vtt";   // Not protected, no token needed
    173187    // muviplayers[i].appendChild(plTrack);
    174    
     188
    175189    // Russian Subtitles (for future implementation)
    176190    // var ruTrack = document.createElement("track");
Note: See TracChangeset for help on using the changeset viewer.