mirror of
https://github.com/videojs/video.js.git
synced 2025-02-04 11:43:27 +02:00
Close GH-470: Augment userAgent detection.
This commit is contained in:
parent
8e5cf7a69d
commit
00a043f1e1
@ -304,9 +304,9 @@ vjs.USER_AGENT = navigator.userAgent;
|
||||
* @type {Boolean}
|
||||
* @constant
|
||||
*/
|
||||
vjs.IS_IPHONE = !!vjs.USER_AGENT.match(/iPhone/i);
|
||||
vjs.IS_IPAD = !!vjs.USER_AGENT.match(/iPad/i);
|
||||
vjs.IS_IPOD = !!vjs.USER_AGENT.match(/iPod/i);
|
||||
vjs.IS_IPHONE = (/iPhone/i).test(vjs.USER_AGENT);
|
||||
vjs.IS_IPAD = (/iPad/i).test(vjs.USER_AGENT);
|
||||
vjs.IS_IPOD = (/iPod/i).test(vjs.USER_AGENT);
|
||||
vjs.IS_IOS = vjs.IS_IPHONE || vjs.IS_IPAD || vjs.IS_IPOD;
|
||||
|
||||
vjs.IOS_VERSION = (function(){
|
||||
@ -314,16 +314,34 @@ vjs.IOS_VERSION = (function(){
|
||||
if (match && match[1]) { return match[1]; }
|
||||
})();
|
||||
|
||||
vjs.IS_ANDROID = !!vjs.USER_AGENT.match(/Android.*AppleWebKit/i);
|
||||
vjs.IS_ANDROID = (/Android/i).test(vjs.USER_AGENT);
|
||||
vjs.ANDROID_VERSION = (function() {
|
||||
var match = vjs.USER_AGENT.match(/Android (\d+)\./i);
|
||||
if (match && match[1]) {
|
||||
return match[1];
|
||||
}
|
||||
return null;
|
||||
})();
|
||||
// This matches Android Major.Minor.Patch versions
|
||||
// ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned
|
||||
var match = vjs.USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),
|
||||
major,
|
||||
minor;
|
||||
|
||||
vjs.IS_FIREFOX = function(){ return !!vjs.USER_AGENT.match('Firefox'); };
|
||||
if (!match) {
|
||||
return null;
|
||||
}
|
||||
|
||||
major = match[1] && parseFloat(match[1]);
|
||||
minor = match[2] && parseFloat(match[2]);
|
||||
|
||||
if (major && minor) {
|
||||
return parseFloat(match[1] + '.' + match[2]);
|
||||
} else if (major) {
|
||||
return major;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
})();
|
||||
// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser
|
||||
vjs.IS_OLD_ANDROID = vjs.IS_ANDROID && (/webkit/i).test(vjs.USER_AGENT) && vjs.ANDROID_VERSION < 2.3;
|
||||
|
||||
vjs.IS_FIREFOX = (/Firefox/i).test(vjs.USER_AGENT);
|
||||
vjs.IS_CHROME = (/Chrome/i).test(vjs.USER_AGENT);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -229,13 +229,9 @@ vjs.Html5.Events = 'loadstart,suspend,abort,error,emptied,stalled,loadedmetadata
|
||||
|
||||
// HTML5 Feature detection and Device Fixes --------------------------------- //
|
||||
|
||||
// Android
|
||||
if (vjs.IS_ANDROID) {
|
||||
|
||||
// Override Android 2.2 and less canPlayType method which is broken
|
||||
if (vjs.ANDROID_VERSION < 3) {
|
||||
document.createElement('video').constructor.prototype.canPlayType = function(type){
|
||||
return (type && type.toLowerCase().indexOf('video/mp4') != -1) ? 'maybe' : '';
|
||||
};
|
||||
}
|
||||
if (vjs.IS_OLD_ANDROID) {
|
||||
document.createElement('video').constructor.prototype.canPlayType = function(type){
|
||||
return (type && type.toLowerCase().indexOf('video/mp4') != -1) ? 'maybe' : '';
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user