|
Navigator 3.0x and 4.0x support the MimeType object (Internet Explorer 4.0x doesn't). A MimeType object can be an element of the navigator.mimeTypes array:
navigator.mimeTypes[index]
where index is either an integer or a string containing the desired MIME type. For example, you can reference the "audio/wav" MimeType object as follows:
navigator.mimeTypes["audio/wav"]
A MimeType object can also be a property of a specific Plugin object:
navigator.plugins["LiveAudio"][index]
where index is either an integer or a string containing the MIME type. For example, you can reference the "audio/wav" MimeType via the LiveAudio Plugin object as follows:
navigator.plugins["LiveAudio"]["audio/wav"]
The following table summarizes the properties of a MimeType object:
| Property |
Description |
type |
The name of the MIME type. |
description |
A description of the MIME type. |
suffixes |
A string containing the MIME type's possible extensions. For example: "jpeg, jpg, jpe, jpv, vbs, jpegv". |
enabledPlugin |
The Plugin object that can display data of the MIME type. enabledPlugin is null when there is no plug-in to display data of the specificied MIME type format. |
The following example prints all MIME types supported by the browser. We extract the number of MIME types from the navigator.mimeTypes object's length property. The loop generates a table row for each MIME type:
document.write("<TABLE BORDER='1' CELLSPACING='0' CELLPADDING='3'>");
for (var i = 0; i < navigator.mimeTypes.length ; i++) {
document.writeln("<TR VALIGN='top'><TD>", i, "</TD>",
"<TD>", navigator.mimeTypes[i].type, "</TD>",
"<TD>", navigator.mimeTypes[i].description, "</TD>",
"<TD>")
if (navigator.mimeTypes[i].suffixes != "")
document.write(navigator.mimeTypes[i].suffixes)
else
document.write(navigator.mimeTypes[i].suffixes + " * ");
document.write("</TD><TD>");
if (navigator.mimeTypes[i].enabledPlugin)
document.write(navigator.mimeTypes[i].enabledPlugin.name);
else
document.write("None");
document.write("</TD><TR>");
}
document.write("</TABLE>");
Here is a sample output generated by Navigator 3.0x or 4.0x:
| 0 | model/vrml | VRML Worlds | wrl, wrz | Cosmo Player 1.0 | |
| 1 | x-world/x-vrml | VRML Worlds | wrl, wrz |
Cosmo Player 1.0 | |
| 2 | audio/x-liveaudio | Streaming Audio Metafiles | lam | Netscape Media Player | |
| 3 | audio/x-midi | MIDI | mid, midi | LiveAudio | |
| 4 | audio/midi | MIDI | mid, midi | LiveAudio | |
| 5 | audio/nspaudio | Netscape Packetized Audio | la, lma | LiveAudio | | 6 | audio/x-nspaudio | Netscape Packetized Audio | la, lma | LiveAudio | |
| 7 | video/msvideo | Video for Windows | avi | NPAVI32 Dynamic Link Library | |
Since Navigator cannot handle hundred line tables, we have restricted the printout to the first few MIME types (Navigator supports a few hundreds MIME types!). The script also prints a * character if the suffixes property is an empty string
It's important to understand the relationship between plug-ins (software modules) and MIME types. enabledPlugin is the plug-in configured for the specified MIME type. Each MIME type can be supported by multiple plug-ins, and each plug-in can handle multiple MIME types, but only one plug-in can be activated for a single MIME type. The enabledPlugin property is a reference to a Plugin object which represents the plug-in that handles the given MIME type.
Audio support on the Web is quite complicated. Navigator 3.0x and above can play embedded tracks provided that the LiveAudio plug-in is installed. Internet Explorer 4.0x and above can can play audio if the ActiveMovie Control is installed (it comes pre-packaged with Windows 95, but can also be downloaded for other platforms along with the browser). Note that many other plug-ins, for both browsers, support audio. However, since we are interested in JavaScript-enabled sound implementations, we will stick with the default LiveAudio plug-in (Navigator) and the Active Movie Control (Internet Explorer).
var NSsound =
navigator.plugins && navigator.plugins["LiveAudio"] && navigator.javaEnabled();
var IEsound = navigator.plugins && document.all;
var audioEnabled = NSsound || IEsound;
We check if Navigator supports sound by verifying that plugins arrays exists and one of the supported plug-ins is "LiveAudio". On Explorer, it's enough to check that the platform is Windows 95 (plugins array exists), and the its version is 4.0x or above (document.all exists).
             
|