Skip to content
An implementation of the JW HTML5 Media Player as an ExpressionEngine plugin.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Plugin: MC Player

An implementation of the JW HTML5 Media Player as an ExpressionEngine plugin.


  • 0.2.6 (2012-06-03):
    • Added skin_height parameter
    • Minor bug fixes
  • 0.2.5 (2012-03-19):
    • Abstracted much of the EE1/EE2 plugin code for improved maintainability
    • Changed default player 'container_tag' from to
      due to the tag's lack of playlist support
    • Included additional debug log messages under various situations
    • Bug fixes
  • 0.2.4 (2012-03-13):
    • Made controlbar/playlist positioning smarter by default
    • Bug fixes
  • 0.2.3 (2012-02-05):
    • Fixed a bunch of "undeclared variable" PHP notifications again
    • Changed how external playlists work (now uses an extra {exp:mc_player:playlist file="playlist.xml"} tag inside the existing {exp:mc_player:play} tags)
    • Changed default video size from 300x150 to 480x270
    • Renamed most internal variables for consistency
  • 0.2.2 (2011-11-23):
    • Changed plugin file encoding from "UTF-8" to "UTF-8 without BOM" (suspected as causing "Headers already sent" PHP errors)
    • Forgot to increment the internal version number in the previous update. :p
  • 0.2.1 (2011-11-22):
    • Minor change to prevent some PHP Notice messages when pl_size & pl_position parameters are not provided
    • Began this changelog


Single file


{exp:mc_player:play file="video.mp4" width="480" height="270" playerpath="/path/to/player.swf"}


{exp:mc_player:play file="audio.mp3" width="480" playerpath="/path/to/player.swf"

Note: The JW Player does not yet support the HTML 5 <audio> tag; in this case, the <video> tag will be used.



{exp:mc_player:play width="480" height="270" playerpath="/path/to/player.swf"}
	{exp:mc_player:playlist file="playlist.xml" position="right" size="360"}


{exp:mc_player:play width="480" height="270" playerpath="/path/to/player.swf"}
	{exp:mc_player:playlist position="bottom" size="240"}
		{exp:mc_player:item file="entry_1.mp4" image="entry_1.jpg" duration="54" title="First item"}
		{exp:mc_player:item file="entry_2.mp4"}
		{exp:mc_player:item file="entry_3.mp4"}

File with levels

{exp:mc_player:play width="480" height="270" playerpath="/path/to/player.swf"
 provider="http" http.startparam="starttime"}
			{exp:mc_player:level bitrate="300" file="vid_320.mp4" width="320"}
			{exp:mc_player:level bitrate="600" file="vid_480.mp4" width="480"}
			{exp:mc_player:level bitrate="900" file="vid_720.mp4" width="720"}

File with modes

{exp:mc_player:play width="480" height="270" file="vid_480.mp4"}
			{exp:mc_player:mode type="html5"}
			{exp:mc_player:mode type="flash" src="/path/to/player.swf"}
			{exp:mc_player:mode type="download"}

JS playlist with files & levels

{exp:mc_player:play width="320" height="240"}
	{exp:mc_player:playlist position="right" size="360"}
		{exp:mc_player:item file="entry_1.mp4" image="entry_1.jpg" duration="54"}{/exp:mc_player:item}
		{exp:mc_player:item file="entry_2.mp4" image="entry_2.jpg" duration="42"}{/exp:mc_player:item}
				{exp:mc_player:level bitrate="300" file="entry_1_320.mp4" width="320"}
				{exp:mc_player:level bitrate="600" file="entry_1_480.mp4" width="480"}
				{exp:mc_player:level bitrate="900" file="entry_1_720.mp4" width="720"}
		{exp:mc_player:item file="entry_3.mp4" image="entry_3.jpg" duration="564"}{/exp:mc_player:item}

Please note: if any tag is used as a tag pair instead of a single tag, all tags of that specific type must also be pairs (in this case, the exp:mc_player:item tag pairs)

A simple view of the heirarchy for the above code could be:

- player
	-- playlist
		--- item 1
		--- item 2
		--- item 3
			---- levels
				----- level
				----- level
				----- level
		--- item 4
You can’t perform that action at this time.