spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / javascript / column52


A Streaming Media JukeBox - Part II: Netscape

Developer News
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?

The JukeBox Script

Our streaming media jukebox for the plugin version is very similar to our ActiveX control version from Column 51, A Streaming Media Jukebox. We first define an array of objects:

var streams = new Array();

We then define the object constructor as:

function makeStream(url, name) {
  this.url = url;
  this.name = name;
}

And finally, we populate the array with several ASX and ASF files:


streams[0] = new makeStream("http://msdn.microsoft.com/downloads/samples
  /Internet/imedia/netshow/smedia/NS3/JavaScript/Buttons/control.asx",
  "Microsoft Promo for Windows Media Player");
  // (The three lines above should be joined as one line.
  // They have been split for formatting purposes.)
streams[1] = new makeStream("http://www.advintsol.com/webmaster030399/
  webmaster.asx", "Microsoft Training for Windows Media Player");
  // (The two lines above should be joined as one line.
  // They have been split for formatting purposes.)
streams[2] = new makeStream("mms://netshow.microsoft.com/ms/sbnasfs/wmt
  /turtle28.asf", "The Turtle");
  // (The two lines above should be joined as one line.
  // They have been split for formatting purposes.)
streams[3] = new makeStream("mms://netshow.microsoft.com/ms/sbnasfs/wmt/
  wmt.asf", "Flying Windows Media Player logo");
  // (The two lines above should be joined as one line.
  // They have been split for formatting purposes.)

Once we know the number of elements in the array, we can dynamically write a pull-down list. The extra complexity in the Plugin version is that we need to explicitly select the desired entry to be displayed in the pull-down window. We first extract the URL parameter and then check with which entry we have a match:

function getSelectedEntry() {
  var query = location.search.substring(2, location.search.length-1);
  for (var i = 0; i < streams.length; i++) {
    if (streams[i].url == query) return i;
  }
  return 0;
}

And then we write the pull-down selection list:


document.writeln('<SELECT NAME="streams" onChange="change()">');
  var menuSelection = getSelectedEntry();
  for (var i = 0; i < streams.length; i++) {
    if (i == menuSelection) document.writeln('<OPTION VALUE="', streams[i].url,
      '" SELECTED>', streams[i].name)
  // (The two lines above should be joined as one line.
  // They have been split for formatting purposes.)
    else document.writeln('<OPTION VALUE="', streams[i].url, '">',
      streams[i].name)
  // (The two lines above should be joined as one line.
  // They have been split for formatting purposes.)
  }
  document.writeln('</SELECT>');

The jukebox event handler kicks in whenever there is a change in the selection:

function change() {
  var list = document.playerCtrl.streams;
  var streamURL = list.options[list.selectedIndex].value;
  menuSelection = list.selectedIndex;
  document.mediaPlayer.Stop();
  document.displayMode.playOrPause.value = " Pause ";
  location.href = "demo.html" + "?" + '"' + streamURL + '"';
}

We first extract the URL of the currently selected item. We then call the Media Player's Stop() method and then reload the page with the new selection as a parameter.

http://www.internet.com

Produced by Yehuda Shiran and Tomer Shiran

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Rolling Out Your Own HTML Application Version Control · HTML 5: Client-side Storage · Working with Ajax Server Extensions
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Wi-Fi Product Watch, November 2009 · Chip Market Recovering From '08 Collapse · Low-Cost Tools to Kickstart Your New Business


Created: November 9, 1999
Revised: November 23, 1999

URL: http://www.webreference.com/js/column52/jukebox.html