QuickTime Plugin Detector

A few PluginDetect commands for QuickTime detection

PluginDetect.getVersion('QuickTime', thirdParty): [Returns string or null]
   Returns the version (as a string) of the installed plugin. For non-Internet Explorer browsers, you may need to specify the instantiate input argument in order to detect the plugin version.
   Returns null when the version could not be determined (when plugin is not installed/not enabled, or plugin is installed but the version information is unavailable).

By default, the returned version string is comma delimited and has the format of "A,B,C,D". If you wish to change the getVersion( ) delimiter, then use:
   PluginDetect.getVersion(delimiter) where delimiter is a string with exactly 1 character.

For example,
   PluginDetect.getVersion(".");   // set delimiter
   var version = PluginDetect.getVersion("QuickTime");    // version has the format of "A.B.C.D"

PluginDetect.isMinVersion('QuickTime', minVersion, thirdParty):
[Returns number]
   Returns 1 if plugin is installed (& enabled) and plugin version is >= minVersion.
   Returns 0 if plugin is installed (& enabled). The plugin version is unknown, and thus we are unable to determine if version >= minVersion.
   Returns -0.1 if plugin is installed & enabled, but plugin version is < minVersion.
   Returns -1 if plugin is not installed or not enabled.
   Returns -3 if you supplied a bad input argument to the isMinVersion( ) method.

minVersion: [string or number input argument]
   This is the minimum plugin version.
   Can be a string such as  '1,5,0,0' or '1.5' or '1,5,0,1' or '' etc...
   Can be a number such as 0 or 1.5 or 1.50 etc...
   If minVersion is not specified, then PluginDetect will assume minVersion is '0'.
   Strings are more versatile than numbers since '1,5,0,1' cannot be expressed as a number.

thirdParty: [Boolean. Optional input argument.]
[The thirdParty input argument has no effect on Internet Explorer. It only applies to non-Internet Explorer browsers.]
   If thirdParty is false/0/undefined, then only the genuine Apple QuickTime Player will be detected. PluginDetect will try to filter out and ignore any third party media players that try to masquerade as the genuine QuickTime Player.
   If thirdParty is true/1, then PluginDetect will detect both the genuine QuickTime Player and (some) 3rd party QuickTime media players. Only those 3rd party players that adequately mimic the genuine QuickTime player in the navigator[ ] arrays will be detected. If both the genuine QuickTime Player and a third party player are present on your computer, then only the detection results for the genuine player are returned.

Plugin Version Precision

The QuickTime plugin version is detected by PluginDetect.getVersion('QuickTime'). The getVersion( ) method will return a value of null or a string of 4 numbers "A,B,C,0". The first 3 digits will be integers >= 0, and the last digit will always be 0.

Detection Speed in Internet Explorer

The PluginDetect.getVersion( ) method for QuickTime in Internet Explorer can be rather slow, especially for recent versions of QuickTime. However, PluginDetect.isMinVersion( ) is much faster. So if detection speed is an issue for your web page, you may want to avoid using getVersion( ) and just use isMinVersion( ).

[Note: For all other browser plugins, unless otherwise indicated, the getVersion( ) and isMinVersion( ) methods should have the same detection speed. QuickTime just happens to be an exception.]

Here is an example of detection code that is slow in Internet Explorer:

// Example # 1
var $$ = PluginDetect;
var QTversion = $$.getVersion('QuickTime');

And here is an example that is usually faster:

// Example # 2
var $$ = PluginDetect;
var QTstatus = $$.isMinVersion('QuickTime', '7.6');

If you intend to use both getVersion( ) and isMinVersion( ) in the same script, then you may obtain a slight speed advantage by using getVersion( ) before you use isMinVersion( ):

// Example # 3
var $$ = PluginDetect;
var QTversion = $$.getVersion('QuickTime');
var QTstatus = $$.isMinVersion('QuickTime', '7.6');

Detecting the genuine Apple QuickTime Player plugin

Suppose you only want to detect the genuine Apple QuickTime player, and that you want to ignore any 3rd party plugins that masquerade as QuickTime.

To detect the genuine QuickTime Player, you can use the following code:

var $$ = PluginDetect;
var QTInstalled = $$.isMinVersion('QuickTime', '0') >= 0 ? true : false;
var QTVersion = $$.getVersion('QuickTime');
var canPlayQTVR = $$.isMinVersion('QuickTime', '5,0,5') == 1 ? true : false;

Our goal here is to make sure that the real QuickTime plugin is present, since a 3rd party imitator will most likely not have all the same capabilities as QuickTime.

For instance, many (or most) third party players cannot handle QuickTime VR (QuickTime Virtual Reality) panoramic content. If you wanted to display QuickTime VR content in a browser, then you would want to detect whether the genuine QuickTime plugin was present or not.

I believe that QuickTime 5.05 or higher is capable of playing QuickTime VR movies. Hence the canPlayQTVR variable depends on the '5,0,5' input argument.

Note: QuickTime on iPad/Safari does not seem to support QTVR, yet it is still the genuine Quickime plugin. QuickTime on iPad/Safari does not reveal the plugin version either, and thus for the iPad we would have isMinVersion('QuickTime', '5,0,5') returning 0. Hence the code "PluginDetect.isMinVersion('QuickTime', '5,0,5') == 1 ? true: false" correctly evaluates to 'false' for the iPad.

Detecting genuine QuickTime or 3rd party compatible plugin

Let us suppose that you embedded a QuickTime video in a web page. Let’s also say that both the genuine QuickTime plugin and the 3rd party plugins (VLC, Totem, MPlayer, etc...) are able to play your video. Under Linux, your QuickTime video could play with VLC or Totem. And under Windows or Mac OSX, it could play with the QuickTime plugin.

In this case, you would not care whether the genuine QuickTime plugin or a 3rd party plugin was being used to view the video. All you would care about is that your video can play on as many computers and platforms as possible.

Which means that we want to detect whether QuickTime and/or a 3rd party compatible plugin is installed in your browser. To accomplish this, we use the thirdParty input argument as follows:

var $$ = PluginDetect;
var QTInstalled = $$.isMinVersion('QuickTime', '0', true) >= 0 ? true : false;
var QTVersion = $$.getVersion('QuickTime', true);

Top of Page