Updated MIDI embedding method on DVD pages.

I’ve updated the method I’m using to embed MIDI files in my DVD pages that had them. A couple of example pages are The Best of Benny Hill and Star Wars I: The Phantom Menace. I am using the JavaScript method that is described at MIDIStudio.com. It’s basically the same thing I was doing before directly within the page’s code without JavaScript; however, this script now adjusts the code based upon the browser it detects which should make it more compatible.  I did modify their code slightly by adding an optional autostart parameter with a default value of 0 if no value is given so that it does not automatically start playing.  Here’s my modified code:

// This script determines correct code required to embed MEDIA files 
// for a large number of browsers, including AOL and WebTV
// Windows Media Player is required and always used, except for WebTV
// Written by Les Gorven, http://midistudio.com/ 
// Ver. 4.0 (simple) auto-start parameter is true - Created: February 2, 2008
// autostart parameter added by Mark Headrick December 2, 2009
 
function playMedia(mediaURL,rpt,height,width,autostart) {
var mediaURL,rpt,height,width,autostart;
 
if (typeof autostart == "undefined") {
	autostart = 0;
}
 
if (GetBrowser() == "IE")
	playAll(mediaURL,rpt,height,width,autostart) ;  
else if (GetBrowser() == "unknown")
	embedSource(mediaURL,rpt,height,width,autostart) ;
else if (navigator.appName.substring(0,5) == "WebTV")
	embedSource(mediaURL,rpt,height,width,autostart) ;
else
	playAll(mediaURL,rpt,height,width,autostart) ;
}
 
function embedSource(mediaURL,rpt,height,width,autostart) {
 
	var CodeGen = "";
	var mediaURL,rpt,height,width,autostart;
 
	CodeGen = '<embed src="' + mediaURL + '"' + '\n' ;
	if (autostart == 0) {
	 	CodeGen += ' height=' + height + ' width=' + width + ' autostart="false"' + '\n';
	} else {
		CodeGen += ' height=' + height + ' width=' + width + ' autostart="true"' + '\n';	
	}
	CodeGen += ' LOOP=' + rpt + '>';
	document.write(CodeGen);
}
 
function playAll(mediaURL,rpt,height,width,autostart) {
	var CodeGen = ""; 
 
	CodeGen = '<embed type="application/x-mplayer2" ' + '\n' ;
	CodeGen += ' pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" ' + '\n' ;
	CodeGen += 'Name="Player" ' + 'src="' + mediaURL + '" ' + '\n' ;
	CodeGen += 'autoStart=' + autostart + ' ' ;
	if ((height == 24) && (width == 299)) 
		CodeGen = CodeGen + 'ShowStatusBar=1 '; 
	if ((height >= 50) && (height <= 75) && (width >= 200)) 
		CodeGen = CodeGen + 'ShowStatusBar=1 '; 
	if ((height > 75) && (width >= 200)) 
		CodeGen = CodeGen + 'ShowStatusBar=0 '; 
	if ((height <= 49) && (width != 299))
		CodeGen += 'ShowStatusBar=0 '; 
	CodeGen += 'enableContextMenu=1 cache=0' + '\n' ;
	CodeGen += 'playCount=' + rpt + ' ' ;
	CodeGen += 'volume=-1 ' ;
	CodeGen += 'HEIGHT=' + height + ' WIDTH=' + width + '>' ;
	document.write(CodeGen);
}
 
function GetBrowser()
{
   var agt=navigator.userAgent.toLowerCase();
   if( ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)) )
       return "IE";
   else if( ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
         && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
         && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)) )
       return "Netscape";
   else
       return "unknown";
}

Within the page itself, I just put the following where I want the player to appear:

	<script type="text/javascript"> 
	playMedia("/midi/SomeFileToPlay.mid",3,65,300)
	</script>

If I want the song to automatically start playing, then I would change the code to:

	<script type="text/javascript"> 
	playMedia("/midi/SomeFileToPlay.mid",3,65,300,1)
	</script>

Seems to work well in both Firefox 3.5.5 and Internet Explorer 8. :)

This entry was posted in MIDI, Website Update and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 6 + 13 ?