Updated MIDI embedding method on DVD pages.
Wednesday, December 2nd, 2009I’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.


![Validate my RSS feed [Valid RSS]](/images/valid-rss-rogers.png)