The area where you may experience the most difficulty with plugins is to do with video and media. There are now three major competing technologies and many other minority plugins that can play audio and video.
If you just concentrate on the main players, you still have a lot of work to do. These are:
Apple QuickTime
Progressive Networks Real Media
Windows Media Services
Functionally they are all very similar. Some of the protocols are shared between them and they all deliver multiple streams to a player plugin.
Other plugins that you'll encounter will be:
Macromedia Shockwave
Macromedia Flash
LiveAudio
Beatnik
PDF viewer
VRML viewer
Beyond that, some prefer an <EMBED> while others prefer <OBJECT> tags. This is platform- and browser-dependent so on one browser a plugin may <EMBED> and on another, the same plugin will work best in an <OBJECT> tag.
Be aware that using the same plugin in the same browser and implementing it as an <OBJECT> or an <EMBED> may mean that certain functionality is only available in one or the other.
Given that you have got the plugin working with the correct tag and the features you need are available, the call-back messages they use are not the same, nor are the method calls you can make on the plugin. Indeed, for some plugins, you may only be able to talk to them from JavaScript with the very latest version. Older versions simply ignore the JavaScript messages.
Given that you now have your plugin running, in the right tags, and can talk to it, the functionality is different. Some plugins may allow the clip to be played backwards while others won't. Some may let you pause and play with different method calls, while at least one provides only a play_pause command. In that scenario, you can play or pause the clip but you won't actually know what state it is in.
Netscape and MSIE encapsulate plugin/embedded objects in a different way. In MSIE they are objects of the EMBED class. In Netscape they are objects commonly referred to as belonging to the Plugin class.
There is additional confusion in that there is a plugins[] array that belongs to the document and another than belongs to the navigator object. They both contain collections of objects but of different types. This is further confused by the fact that the document.plugins[] array is another name for the document.embeds[] array.
Due to this confusing situation, the best recommendation is that we refer to document.embeds[] and navigator.plugins[] and quietly ignore the document.plugins[] array. Furthermore we shall refer to Plugin objects as being something the browser can use to play embedded content and Embed objects as instances of a plugin that is alive and running in a document.
See also: | Compatibility, Plugin events |
Prev | Home | Next |
Platform | Up | Plugin events |
JavaScript Programmer's Reference, Cliff Wootton Wrox Press (www.wrox.com) Join the Wrox JavaScript forum at p2p.wrox.com Please report problems to support@wrox.com © 2001 Wrox Press. All Rights Reserved. Terms and conditions. |