Forum Moderators: not2easy

Message Too Old, No Replies

Windows Media Player script in FireFox

         

StevieGuy9

1:33 am on Mar 18, 2005 (gmt 0)



I've been working on this script for the past week and it works great in IE and NS, but doesnt work in Firefox or Opera. Can you give the script a look over and tell me what i've been doing wrong. I think it has something to do with the <embed> and the JavaScript.

Thanks a bunch.

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var playstate = 1;
shuffle = 0; // set to 0 to always play first video in list
// set to 1 to randomly choose the first video to play
videos=new Array();
videos[0]="archive/DSUEP1.wmv";
videos[1]="archive/DSR.EP2.wmv";
videos[2]="archive/DSR.EP3.wmv";
videos[3]="archive/DSR.EP4.wmv";
videos[4]="archive/DSR.EP5.wmv";
if (shuffle == 1) {
var randsg = Math.floor(Math.random()*videos.length);
document.dsrmotion.FileName = videos[randsg];
document.dsrmotion.scr = videos[randsg];
document.forms['form'].playlist.options[randsg].selected = true;
}
function play(list) {
if (playstate == 2) {
document.dsrmotion.Play();
} else {
var snum = list.options[list.selectedIndex].value
document.dsrmotion.FileName = videos[snum];
document.dsrmotion.scr = videos[snum];
}
playstate = 1;
}
// End -->
</Script>

<object width="220" height="160" id="dsrmotion" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" type="application/x-oleobject" standby="Loading Microsoft Windows Media Player components..." classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95">
<param name value>
<param name="ShowControls" value="0">
<param name="ShowStatusBar" value="0">
<param name="ShowDisplay" value="0">
<param name="DefaultFrame" value="Slide">
<param name="Autostart" value="1">
<param name="Loop" value="False">
<embed width="220" height="160" id="dsrmotion" type="video/x-ms-asf-plugin" transparentatstart="true" SendOpenStateChangeEvents="true" showstatusbar="1" showdisplay="0" autosize="0" autorewind="0" animationstart="0" autostart="0" showcontrols="0">
</object>

<form name="form">
<select style="FONT-SIZE: 8pt; BACKGROUND:#transparent; WIDTH: 150px; COLOR: #33666; font-face: verdana" name="playlist" size="1">
<option value="0">Video 1</option>
<option value="1">Video 2</option>
<option value="2">Video 3</option>
<option value="3">Video 4</option>
<option value="4">Video 5</option>
</select><br>
<img TYPE="BUTTON" NAME="darkplay" VALUE="play" TITLE="Play" OnClick="play(document.forms['form'].playlist);" src="images/playbutton.jpg" width="27" height="26">
<img TYPE="BUTTON" NAME="darkpause" VALUE="pause" TITLE="Pause" onClick="document.dsrmotion.Pause(); playstate=2;" src="images/pausebutton.jpg" width="30" height="26">
<img TYPE="BUTTON" NAME="darkstop" VALUE="stop" TITLE="Stop" OnClick="document.dsrmotion.Stop(); playstate=2;" src="images/stopbutton.jpg" width="27" height="26">
</form>

pixelkat

9:55 am on Mar 29, 2005 (gmt 0)

10+ Year Member



You must first create a text file containing the path to the actual location of the media file and save it as an .asx file. Then, it is the .asx file, not the wmv file that is referenced in the html file. In short, the code in the html file asks the .asx file for the address of the wmv file and requests that the .wmv file be streamed through the WinMedia Player.

Whenever a media file is not resident to the browser, the browser must call on an external player to play the file. Even when the file appears to "play" inside the browser window, it is actually only the player that is embedded inside the browser window.

It's actually not a javascript thing at all. It's an ActiveX thing. Neither Firefox nor Opera supports ActiveX directly. (Altho the next version of Firefox is said to support ActiveX directly.) Another option is to install the activeX plug-in, but to me that's kinda silly. Aren't we all using Firefox because it gives us protection against the insideous hacking of ActiveX?

And lastly, when it comes to standards-compliant browsers of any kind, it is wise to use a DOCTYPE in all cases, even when coding html only. Streaming languages are all subsets of XML. Sometimes the best, most universal streaming results come from using strict XHTML, which is XML-specific in the DOCTYPE.

Streamingmedia.com is a good source for examples and tutorials. You can also google your way to lots of streamed media. There's a lot to learn from the source code at sites that actually stream media clips.

;)

kat