Tag Archives: Javascript

My plea to NASCAR.COM and TrackPass (RaceView) Developers

It’s probably a good thing I waited until today to write this; otherwise, it would have been full of many colorful words. 🙂 This is a follow-up to my last post. I tried to run NASCAR.COM’s RaceView during the Michigan race this past Sunday and all I got was either a window with “loading” at the bottom or just a solid white window. This occurred in both Firefox and Internet Explorer. I opened up the Java console in both Firefox and IE and it just had a Java error of a Null pointer assignment:

java.lang.NullPointerException
 at com.sun.opengl.util.JOGLAppletLauncher.start(JOGLAppletLauncher.java:385)
 at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NullPointerException

Yes, I did try to reload several times. So I gave up and just started PitCommand to listen to Dale Jr’s audio. I did have to start it in IE first before the audio would work in Firefox and I just didn’t care to investigate this further. I was frustrated and missing the race. Before you ask, I do meet their minimum system requirements.

Now, I don’t mind troubleshooting problems; however, I do not want to do it during the actual race! It totally ruins the fan’s experience. How can you expect fans to search knowledge bases and forums, reinstall Java, plug-ins, audio and video drivers, and do whatever else might be potentially involved? It boggles my mind that there isn’t a race simulator that we can test these applications with during the week. If I was a NASCAR website/TrackPass developer I’d scream for this. I am quite sure the website team has no desire to fix the software during races either (I only hope they at least have some internal system to do this). Normally I wouldn’t give a flying fruitcake about it, but I am paying more for TrackPass than I am for my webhosting here that my blog, among several other sites, is on. The IndyCar RaceControl works (yes, they do loose timing and scoring sometimes but that’s an issue at their end when it happens) and it’s free.

This will probably be my last season to subscribe to RaceView. If the preview works during next year’s Daytona 500 then I might reconsider; otherwise, I’ll just stick with the scanner.

I welcome any comments about other’s experiences and how you got it to work, if you did.

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 MIDKar.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. 🙂