Embedding Rich Media
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
Embedding Rich Media (ERM) is a technique of publishing multimedia (animation, audio and video) in web. The most prevailing method of web-publishing is applying plugin technology such as Adobe Flash, Apple QuickTime, Sun Java, or Microsoft Silverlight, using object element, or embed element, or combination of the two.
Plugins are shared libraries that users can install to see the content whereas the application itself can't display naively. For example, the Adobe Reader plugin lets the user open PDF files directly inside the browser, and the QuickTime and RealPlayer plugins are used to play special format videos in a web page. Plugins can be written using Netscape Plugin Application Programming Interface (NPAPI), the cross-browser API for plugins. The main source of documentation for NPAPI is the Gecko Plugin API Reference. The npruntime makes the plugin scriptable in web pages. Plugins also can be written using C APIs (usually in C or C++) or these may be built on a plugin framework such as Firebreath, JUCE, or QtBrowserPlugin.
The benefits of a plugin based system are
- Extensibility: The application can be dynamically extended to include new features.
- Parallel development: The application can be developed in parallel, as the features can be implemented as separate components.
- Clear development direction: Developers have a clear roadmap for development, as the plugin framework ideally provides a well-defined interface and documentation.
- Single focus: A plugin typically has one function, and so developers have a single focus.
- Extensibility: Designing extensibility to meet all possible applications often takes several iterations, or extremely good requirements of analysis.
- Maintainability: Managing versions and backwards compatibility with existing plugins is very complicated, tiresome and iterative as it needs continuous updation with each version.
- Complexity: It may seem that plugin is working fine when tested alone. Though interactions between plugins can cause new problems and fixing these bugs makes plugin technology complicated.
- Testing: Testing plugins is difficult as testing is only available by running the plugin for real, which slows down development.
- Artificial separation: A plugin typically being a single focus and set by the plugin API provider only, the artificial separation of the plugin into separate plugins for two different objectives becomes complicated being in same framework.
Designing a good plugin environment goes with designing a good library. If both the environment and the plugins are designed by same developer, the developer can update all the plugins as the environment evolves. But if the plugin API is open to all, it requires careful planning and execution to get the design right to avoid too many plugin rewrites as the environment evolves. Plugins are required to be periodically downloaded and updated for browsing the web. Developers need maintain the plug-ins continuously in the process of releasing, updating, or discontinuing. Search engines, screen readers, mobile devices experience difficulty in accessing encapsulated contents in plugins. Content delivery is highly dependent on the support of plugin developers.
Embedding Rich Media using HTML5
The simple, accessible and forward-biased – video, audio, and canvas elements introduced by HTML5 specification provide a standardized embedding system of rich media. It resolves almost all complicacies of plugin technologies using video, audio and canvas markup elements.
The HTML5 video element allows embedding video content in a web page.</video> e.g., <video src=”mymovie.ogg” ”>
The HTML5 canvas element delivers interactive chart, animated feature graphics in a web page. All three elements support the placement markup within tags and even can provide instruction to the users how the media can be accessed if the browser doesn’t support HTML5.
- Gecko Plugin API Reference, Retrieved on May 05, 2014
- Parker, T., Toland, P. et.al, "Designing with Progressive Enhancement/ Building the web that works for everyone" pp. 61-64.
- HTML5 Video, Retrieved on May 05, 2014
- HTML5 Audio, Retrieved on May 05, 2014
- HTML5 Canvas, Retrieved on May 05, 2014