QuickTime Plugin Detector




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 QuickTime plugin

When PluginDetect is trying to detect the QuickTime plugin, it will try to ignore any 3rd party plugins that masquerade as QuickTime. The purpose here is to make sure that the real QuickTime plugin is present. After all, a 3rd party imitator will most likely not have all the same capabilities as QuickTime.

For instance, QuickTime does not run under Linux. There are, however, a few 3rd party plugins (ie. Totem, VLC, etc...) under Linux that can play many kinds of QuickTime content. They often mimic QuickTime in the browser navigator array so that the plugin detectors believe that QuickTime is installed.

The problem here is that VLC and Totem cannot play QuickTime VR (QTVR) content. If you wanted to play QuickTime VR in a browser (using the QuickTime plugin), you would want to detect whether the genuine QuickTime plugin was present or not.

For this reason, PluginDetect tries to filter out the 3rd party plugins when detecting QuickTime.

If you want to detect the QuickTime plugin, 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;


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, 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. One possible solution to this issue is given in the detector at the very top of this page.



Detection for Internet Explorer 7+

For Internet Explorer 7+, we have to worry about those security message popups when doing QuickTime detection. These popups occur whenever we use an ActiveX control that the browser deems unsafe and that the user has never explicitly approved. By default, most ActiveX controls are assumed to be unsafe by IE 7+.

In order to do QuickTime detection, however, we must utilize one or more ActiveX controls. The trick here is to only use controls that are least likely to cause any security popup to occur.

For Internet Explorer 7+, there is 1 particular QuickTime ActiveX control that will not give any security popup, assuming that a) the QuickTime plugin has previously run in the browser, and/or b) some minimum QuickTime version is installed that automatically causes the control to be pre-approved, regardless of whether QuickTime has ever run in the browser before. The ActiveX control in question is as follows:

{02BF25D5-8C17-4B23-BC80-D3488ABDDC6B}
This is the classid for the <object> tag when embedding a QuickTime movie into a web page.

PluginDetect only uses the control cited (above) to detect QuickTime in IE 7+. It is the one control least likely to cause any security related popup in the browser.

There is one other useful ActiveX control, namely ActiveXObject("QuickTimeCheckObject.QuickTimeCheck.1"). With it one can determine the installed QuickTime plugin version. However, this control will cause a security popup to occur when it is instantiated for the very first time. Microsoft does not recommend that you use it. I don't either, since we cannot know for certain whether a user will allow the control to run.



Top of Page