<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csun</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csun"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Csun/"/>
	<updated>2026-11-04T20:09:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Twoflower&amp;diff=22301</id>
		<title>Twoflower</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Twoflower&amp;diff=22301"/>
		<updated>2012-03-24T11:13:14Z</updated>

		<summary type="html">&lt;p&gt;Csun: /* External links */ Update to 2.0.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
VLC 2.0 &#039;&#039;&#039;Twoflower&#039;&#039;&#039; is a major new version of our popular media player. With faster decoding on multi-core, GPU, and mobile hardware and the ability to open more formats, notably professional, HD and 10bits codecs, 2.0 is a major upgrade for VLC. Twoflower has a new rendering pipeline for video, with higher quality subtitles, and new video filters to enhance your videos.&lt;br /&gt;
It supports many new devices and BluRay Discs (experimental). Completely reworked Mac and Web interfaces and improvements in the other interfaces make VLC easier than ever to use. Twoflower fixes several hundreds of bugs, in more than 7000 commits from 160 volunteers.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
===Video===&lt;br /&gt;
*Rewritten video output core and modules, allowing subpicture blending in GPU.&lt;br /&gt;
*Shader support in the OpenGL output, for colorspace conversion, including 10bits.&lt;br /&gt;
*New video outputs for Windows 7, Android, iOS and OS/2.&lt;br /&gt;
*New debanding, grain, denoising and anti-flickering filters.&lt;br /&gt;
*New deinterlacing filter, including an Inverse Telecine algorithm.&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
*New resamplers for higher quality audio.&lt;br /&gt;
*New dynamic range compressor and karaoke filters.&lt;br /&gt;
*Simplification of the audio core for faster processing.&lt;br /&gt;
*New audio outputs for iOS, Android and OS/2.&lt;br /&gt;
===Formats===&lt;br /&gt;
*Multi-threaded decoding for H.264, MPEG-4/Xvid and WebM.&lt;br /&gt;
*Support for 10bits codecs, WMV image and some other codecs.&lt;br /&gt;
*Rewritten support for images, including jpeg, png, xcf, bmp...&lt;br /&gt;
*Important changes in RealVideo and Real Format support.&lt;br /&gt;
*CrystalHD cards and Android OpenMAX support for hardware decoding.&lt;br /&gt;
===Input and Devices===&lt;br /&gt;
*Experimental support for BluRay discs: &lt;br /&gt;
**Menus are deactivated in this release (will come soon).&lt;br /&gt;
**MACS and BD+ DRM libraries and keys are not shipped, for legal reasons.&lt;br /&gt;
*Support for SDI capture cards and QTKit devices.&lt;br /&gt;
*Support for new adaptive streaming protocols, like HLS and DASH.&lt;br /&gt;
===For Mac Users===&lt;br /&gt;
*Completely new, single window interface:&lt;br /&gt;
**Available in 2 colors: Lion grey and QTX black.&lt;br /&gt;
**Extensions support and better Lion integration.&lt;br /&gt;
*Support for all QTKit devices through qtcapture and qtsound modules.&lt;br /&gt;
*Continued support for X 10.5 and PPC users (1080p and ProRes on Dual-G5!).&lt;br /&gt;
===For Anime Fans===&lt;br /&gt;
*Vastly improved MKV demuxer.&lt;br /&gt;
*Rewritten linked segments and ordered chapter files support.&lt;br /&gt;
*Correct support for FLAC, RV and Hi10p in MKV.&lt;br /&gt;
*Rewritten seeking support in cue files.&lt;br /&gt;
*Various ASS subtitles improvements.&lt;br /&gt;
===For Professional Users===&lt;br /&gt;
*Support for ProRes 422 and 4444, AVC/Intra.&lt;br /&gt;
*Support for Jpeg-2000 and DNxHD/VC-3 in 10bits.&lt;br /&gt;
*Support for EBU subtitles (stl) and EIA-608.&lt;br /&gt;
*SDI and HD-SDI card support for input on Linux.&lt;br /&gt;
*New Dirac/VC-2 encoder, faster than the previous one.&lt;br /&gt;
===For Developers===&lt;br /&gt;
*libVLC, libVLCcore and libcompat have switched from GPL to [http://www.videolan.org/press/lgpl-libvlc.html LGPLv2.1+].&lt;br /&gt;
*New libVLC examples are available: media player, photobooth and mediainfo clones.&lt;br /&gt;
*New JSON requests on the web interface to control running VLC instances.&lt;br /&gt;
*Implementation of the [http://www.mpris.org/2.1/spec/ MPRIS2] interface to control media players.&lt;br /&gt;
*VLC&#039;s web plugins have been rewritten for better integration and stability in all browsers.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.videolan.org/vlc/releases/2.0.1.html Download on main site]&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Csun</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21146</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21146"/>
		<updated>2012-01-05T20:35:00Z</updated>

		<summary type="html">&lt;p&gt;Csun: Removed instances of version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; from example code, which is no longer used.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
== Building HTML pages for Mozilla Firefox&amp;amp;nbsp;[[Image:Firefox-logo.png|75x75px]]/Internet Explorer[[Image:20101105053305!Internet_Explorer_9.png|75x75px]]/Safari[[Image:Apple_Safari.png|75x75px]]&amp;amp;nbsp; ==&lt;br /&gt;
&lt;br /&gt;
The following description works for any of the browsers VLC supports. The JavaScript API has been unified between Mozilla/Firefox/IE (ActiveX) and Safari, thus targeting at all of the major OS out there. &lt;br /&gt;
&lt;br /&gt;
This is only valid for {{VLC}} version 0.8.6 and above. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;Warning to developers who wish to embed VLC: As of v1.1.5 (plugin v2), the use of CSS3 transitions or transforms with embedded VLC object will cause VLC to crash. Also, VLC does not respond to z-index, it will always force itself on top. This was tested on FF4b9 and Chrome8.0.552.237. Neither of these problems exist with HTML5 &amp;amp;lt;video&amp;amp;gt; (fully tested) or flash (partially tested).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Embed tag attributes ==&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;lt;embed&amp;gt; template:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
       pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039;, &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;: Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
These are additional attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (available since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== API description  ==&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
   width=&amp;quot;640&amp;quot;&lt;br /&gt;
   height=&amp;quot;480&amp;quot;&lt;br /&gt;
   id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Root object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.attachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.attachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.addEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.addEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.detachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.detachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.removeEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.removeEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  if (event.target) {&lt;br /&gt;
      // Netscape based browser&lt;br /&gt;
      targ = event.target;&lt;br /&gt;
  } else if (event.srcElement) {&lt;br /&gt;
      // ActiveX&lt;br /&gt;
      targ = event.srcElement;&lt;br /&gt;
  } else {&lt;br /&gt;
      // No event object, just the value&lt;br /&gt;
      alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
      return;&lt;br /&gt;
  }&lt;br /&gt;
  if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
      targ = targ.parentNode;&lt;br /&gt;
  alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Audio object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  vlc.audio.channel = parseInt(value);&lt;br /&gt;
  alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
==== Input object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Playlist object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
==== Playlist items object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
==== Subtitle object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
==== Video object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
===== Deinterlace Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
===== Marquee Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
===== Logo Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
==== Log object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages Iterator object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
==== Message object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
== Build HTML pages that use the plugin (VLC version up to 0.8.5)  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; the APIs described in this section are &#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use. They no longer work on recent VLC version (&amp;amp;gt; 0.8.5), either it being the ActiveX (Internet Explorer)/ Safari or Mozilla based browsers. &lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin. &lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback. &lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback. &lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen. &lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range. &lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting. &lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting. &lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist. &lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[Media resource locator]] to the playlist. &lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something. &lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds. &lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent. &lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds. &lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Here are a few examples of HTML pages that use the Mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
=== Example 1  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; or double-click on the video to go back in normal view. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video1&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
        target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example 2  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP/RTP stream in a dedicated video output window. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video2&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
        target=&amp;quot;rtp://@239.255.12.42:5004&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Csun</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21145</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21145"/>
		<updated>2012-01-05T20:21:17Z</updated>

		<summary type="html">&lt;p&gt;Csun: /* Embed tag attributes */ ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
== Building HTML pages for Mozilla Firefox&amp;amp;nbsp;[[Image:Firefox-logo.png|75x75px]]/Internet Explorer[[Image:20101105053305!Internet_Explorer_9.png|75x75px]]/Safari[[Image:Apple_Safari.png|75x75px]]&amp;amp;nbsp; ==&lt;br /&gt;
&lt;br /&gt;
The following description works for any of the browsers VLC supports. The JavaScript API has been unified between Mozilla/Firefox/IE (ActiveX) and Safari, thus targeting at all of the major OS out there. &lt;br /&gt;
&lt;br /&gt;
This is only valid for {{VLC}} version 0.8.6 and above. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;Warning to developers who wish to embed VLC: As of v1.1.5 (plugin v2), the use of CSS3 transitions or transforms with embedded VLC object will cause VLC to crash. Also, VLC does not respond to z-index, it will always force itself on top. This was tested on FF4b9 and Chrome8.0.552.237. Neither of these problems exist with HTML5 &amp;amp;lt;video&amp;amp;gt; (fully tested) or flash (partially tested).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Embed tag attributes ==&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;lt;embed&amp;gt; template:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
       pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039;, &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;: Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
These are additional attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (available since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== API description  ==&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot;&lt;br /&gt;
   width=&amp;quot;640&amp;quot;&lt;br /&gt;
   height=&amp;quot;480&amp;quot;&lt;br /&gt;
   id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Root object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.attachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.attachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.addEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.addEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.detachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.detachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.removeEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.removeEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  if (event.target) {&lt;br /&gt;
      // Netscape based browser&lt;br /&gt;
      targ = event.target;&lt;br /&gt;
  } else if (event.srcElement) {&lt;br /&gt;
      // ActiveX&lt;br /&gt;
      targ = event.srcElement;&lt;br /&gt;
  } else {&lt;br /&gt;
      // No event object, just the value&lt;br /&gt;
      alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
      return;&lt;br /&gt;
  }&lt;br /&gt;
  if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
      targ = targ.parentNode;&lt;br /&gt;
  alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Audio object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  vlc.audio.channel = parseInt(value);&lt;br /&gt;
  alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
==== Input object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Playlist object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
==== Playlist items object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
==== Subtitle object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
==== Video object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
===== Deinterlace Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
===== Marquee Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
===== Logo Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
==== Log object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages Iterator object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
==== Message object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
== Build HTML pages that use the plugin (VLC version up to 0.8.5)  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; the APIs described in this section are &#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use. They no longer work on recent VLC version (&amp;amp;gt; 0.8.5), either it being the ActiveX (Internet Explorer)/ Safari or Mozilla based browsers. &lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin. &lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback. &lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback. &lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen. &lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range. &lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting. &lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting. &lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist. &lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[Media resource locator]] to the playlist. &lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something. &lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds. &lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent. &lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds. &lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Here are a few examples of HTML pages that use the Mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
=== Example 1  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; or double-click on the video to go back in normal view. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video1&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
        target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example 2  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP/RTP stream in a dedicated video output window. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video2&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
        target=&amp;quot;rtp://@239.255.12.42:5004&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Csun</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21144</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21144"/>
		<updated>2012-01-05T20:21:03Z</updated>

		<summary type="html">&lt;p&gt;Csun: /* Embed tag attributes */ Deprecated &amp;#039;fullscreen&amp;#039; in favour of &amp;#039;allowfullscreen&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
== Building HTML pages for Mozilla Firefox&amp;amp;nbsp;[[Image:Firefox-logo.png|75x75px]]/Internet Explorer[[Image:20101105053305!Internet_Explorer_9.png|75x75px]]/Safari[[Image:Apple_Safari.png|75x75px]]&amp;amp;nbsp; ==&lt;br /&gt;
&lt;br /&gt;
The following description works for any of the browsers VLC supports. The JavaScript API has been unified between Mozilla/Firefox/IE (ActiveX) and Safari, thus targeting at all of the major OS out there. &lt;br /&gt;
&lt;br /&gt;
This is only valid for {{VLC}} version 0.8.6 and above. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;Warning to developers who wish to embed VLC: As of v1.1.5 (plugin v2), the use of CSS3 transitions or transforms with embedded VLC object will cause VLC to crash. Also, VLC does not respond to z-index, it will always force itself on top. This was tested on FF4b9 and Chrome8.0.552.237. Neither of these problems exist with HTML5 &amp;amp;lt;video&amp;amp;gt; (fully tested) or flash (partially tested).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Embed tag attributes ==&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;lt;embed&amp;gt; template:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
       pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039;, &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;: Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
These are additional attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (available since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== API description  ==&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot;&lt;br /&gt;
   width=&amp;quot;640&amp;quot;&lt;br /&gt;
   height=&amp;quot;480&amp;quot;&lt;br /&gt;
   id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Root object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.attachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.attachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.addEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.addEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.detachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.detachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.removeEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.removeEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  if (event.target) {&lt;br /&gt;
      // Netscape based browser&lt;br /&gt;
      targ = event.target;&lt;br /&gt;
  } else if (event.srcElement) {&lt;br /&gt;
      // ActiveX&lt;br /&gt;
      targ = event.srcElement;&lt;br /&gt;
  } else {&lt;br /&gt;
      // No event object, just the value&lt;br /&gt;
      alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
      return;&lt;br /&gt;
  }&lt;br /&gt;
  if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
      targ = targ.parentNode;&lt;br /&gt;
  alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Audio object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  vlc.audio.channel = parseInt(value);&lt;br /&gt;
  alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
==== Input object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Playlist object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
==== Playlist items object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
==== Subtitle object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
==== Video object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
===== Deinterlace Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
===== Marquee Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
===== Logo Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
==== Log object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages Iterator object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
==== Message object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
== Build HTML pages that use the plugin (VLC version up to 0.8.5)  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; the APIs described in this section are &#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use. They no longer work on recent VLC version (&amp;amp;gt; 0.8.5), either it being the ActiveX (Internet Explorer)/ Safari or Mozilla based browsers. &lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin. &lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback. &lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback. &lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen. &lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range. &lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting. &lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting. &lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist. &lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[Media resource locator]] to the playlist. &lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something. &lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds. &lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent. &lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds. &lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Here are a few examples of HTML pages that use the Mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
=== Example 1  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; or double-click on the video to go back in normal view. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video1&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
        target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example 2  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP/RTP stream in a dedicated video output window. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video2&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
        target=&amp;quot;rtp://@239.255.12.42:5004&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Csun</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21143</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=21143"/>
		<updated>2012-01-05T17:48:11Z</updated>

		<summary type="html">&lt;p&gt;Csun: Add embed tag attributes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
== Building HTML pages for Mozilla Firefox&amp;amp;nbsp;[[Image:Firefox-logo.png|75x75px]]/Internet Explorer[[Image:20101105053305!Internet_Explorer_9.png|75x75px]]/Safari[[Image:Apple_Safari.png|75x75px]]&amp;amp;nbsp; ==&lt;br /&gt;
&lt;br /&gt;
The following description works for any of the browsers VLC supports. The JavaScript API has been unified between Mozilla/Firefox/IE (ActiveX) and Safari, thus targeting at all of the major OS out there. &lt;br /&gt;
&lt;br /&gt;
This is only valid for {{VLC}} version 0.8.6 and above. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;Warning to developers who wish to embed VLC: As of v1.1.5 (plugin v2), the use of CSS3 transitions or transforms with embedded VLC object will cause VLC to crash. Also, VLC does not respond to z-index, it will always force itself on top. This was tested on FF4b9 and Chrome8.0.552.237. Neither of these problems exist with HTML5 &amp;amp;lt;video&amp;amp;gt; (fully tested) or flash (partially tested).&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Embed tag attributes ==&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;lt;embed&amp;gt; template:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
       pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin.&lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039;, &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;: Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
These are additional attributes for the &amp;lt;embed&amp;gt; tag:&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;fullscreen&#039;&#039;&#039;: Specifies whether the plugin starts in fullscreen mode. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== API description  ==&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot;&lt;br /&gt;
   width=&amp;quot;640&amp;quot;&lt;br /&gt;
   height=&amp;quot;480&amp;quot;&lt;br /&gt;
   id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Root object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.attachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.attachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.addEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.addEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  if (vlc) {&lt;br /&gt;
      if (vlc.detachEvent) {&lt;br /&gt;
          // Microsoft&lt;br /&gt;
          vlc.detachEvent (event, handler);&lt;br /&gt;
      } else if (vlc.removeEventListener) {&lt;br /&gt;
          // Mozilla: DOM level 2&lt;br /&gt;
          vlc.removeEventListener (event, handler, false);&lt;br /&gt;
      } else {&lt;br /&gt;
          // DOM level 0&lt;br /&gt;
          vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  if (event.target) {&lt;br /&gt;
      // Netscape based browser&lt;br /&gt;
      targ = event.target;&lt;br /&gt;
  } else if (event.srcElement) {&lt;br /&gt;
      // ActiveX&lt;br /&gt;
      targ = event.srcElement;&lt;br /&gt;
  } else {&lt;br /&gt;
      // No event object, just the value&lt;br /&gt;
      alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
      return;&lt;br /&gt;
  }&lt;br /&gt;
  if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
      targ = targ.parentNode;&lt;br /&gt;
  alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
  if (!event)&lt;br /&gt;
      event = window.event; // IE&lt;br /&gt;
  alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Audio object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
  var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
  vlc.audio.channel = parseInt(value);&lt;br /&gt;
  alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
==== Input object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Playlist object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
==== Playlist items object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
==== Subtitle object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
==== Video object  ====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
===== Deinterlace Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
===== Marquee Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
===== Logo Object  =====&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
==== Log object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Messages Iterator object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
==== Message object  ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
== Build HTML pages that use the plugin (VLC version up to 0.8.5)  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; the APIs described in this section are &#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use. They no longer work on recent VLC version (&amp;amp;gt; 0.8.5), either it being the ActiveX (Internet Explorer)/ Safari or Mozilla based browsers. &lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin. &lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback. &lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback. &lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen. &lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range. &lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting. &lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting. &lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist. &lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[Media resource locator]] to the playlist. &lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something. &lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds. &lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent. &lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds. &lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Here are a few examples of HTML pages that use the Mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
=== Example 1  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; or double-click on the video to go back in normal view. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video1&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
        target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example 2  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP/RTP stream in a dedicated video output window. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
        name=&amp;quot;video2&amp;quot;&lt;br /&gt;
        autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
        target=&amp;quot;rtp://@239.255.12.42:5004&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Csun</name></author>
	</entry>
</feed>