当前位置: 代码迷 >> JavaScript >> 网页的js控制windows media player 在win7下完美运行 而xp中却不行解决办法
  详细解决方案

网页的js控制windows media player 在win7下完美运行 而xp中却不行解决办法

热度:406   发布时间:2012-03-14 12:01:13.0
网页的js控制windows media player 在win7下完美运行 而xp中却不行
是这样的,我做个网页需要调用windows media player 下面这个object标签我试过了 可以全兼容所有主流浏览器。。
问题是我想用js控制它 因为它的宽高都为0嘛 隐藏的。。。在win7上完全可以控制。但在XP上 浏览器左下角却出现"已完成,但网页上有错误" 意思是XP下JS控制出现错误 XP的ie6 ie8都试过了 不行. 但WIN7中所有浏览器都能正常播放
下面是调用wmplayer播放器的html代码,js的控制代码也在下面
<OBJECT ID="ObjNRadioPlayer" name="ObjNRadioPlayer" HEIGHT="0" WIDTH="0" type="application/x-ms-wmp" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
  <PARAM NAME="AutoStart" VALUE="false" />
  <PARAM NAME="Balance" VALUE="0" />
  <PARAM NAME="enabled" VALUE="true" />
  <PARAM NAME="EnableContextMenu" VALUE="false" />
  <PARAM NAME="url" VALUE="mms://10.10.8.73/NRadio" />
  <PARAM NAME="PlayCount" VALUE="1" />
  <PARAM NAME="rate" VALUE="1" />
  <PARAM NAME="currentPosition" VALUE="0" />
  <PARAM NAME="currentMarker" VALUE="0" />
  <PARAM NAME="invokeURLs" VALUE="false" />
  <PARAM NAME="baseURL" VALUE="" />
  <PARAM NAME="stretchToFit" VALUE="1" />
  <PARAM NAME="volume" VALUE="50" />
  <PARAM NAME="mute" VALUE="false" />
  <PARAM NAME="uiMode" VALUE="mini" />
  <PARAM NAME="windowlessVideo" VALUE="0" />
  <PARAM NAME="fullScreen" VALUE="false" />
  <PARAM NAME="enableErrorDialogs" VALUE="false" />
  <embed id="EmbNRadioPlayer" type="application/x-ms-wmp" src="mms://10.10.8.73/NRadio" width="0" height="0" autoStart="false"></embed>
</OBJECT>

以下是JS代码:(基于jQuery的)
var NRadioControl; //定义这个变量 意思是将播放器传给它

//播放器代控制代码
//调用自带的windows media player播放器
//在html代码中 是由<object>标签嵌套<embed>标签组合而成 是由于不同浏览器只认其中一个
//利用navigator.userAgent获得浏览器标识
//经过测试发现 浏览器标识中包含有SLCC2字样的 都只认<object>标签
//而其他不包含SLCC2字样的浏览器都只认<embed>标签或者两者都认(两者都认的也只会显示一个)
//对播放器控制 需要判断navigator.userAgent中是否包含有SLCC2 如果包含 则控制object 如果不包含 则控制embed
if(-1!=navigator.userAgent.indexOf("SLCC2"))
{
  NRadioControl=document.getElementById("ObjNRadioPlayer");
}
else
{
  NRadioControl=document.getElementById("EmbNRadioPlayer");
}

//以下是播放、加减声音、静音按钮的单击事件
//播放按钮单击事件
$("#NRadioControlPlay").click(function(){
  //playState有多种情况:1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
  //利用以上几种情况控制浏览器播放或停止
  if(NRadioControl.playState==3)
  {
  NRadioControl.controls.stop();
  }
  else
  {
  //其它情况,则播放
  NRadioControl.controls.play(); //播放代码
  }
});

//加音量单击事件
$("#ControlVolumeAdd").click(function(){
  NRadioControl.settings.volume+=5; //控制音量 +5%
});

//减音量单击事件
$("#ControlVolumeReduce").click(function(){
  NRadioControl.settings.volume-=5; //控制音量 -5%
});

//静音或取消静音单击事件
$("#ControlVolumeMute").click(function(){
  //NRadioControl.settings.mute 值为true时 则为静音 反之 则有声音
  if(NRadioControl.settings.mute==true)
  {
  NRadioControl.settings.mute=false; //取消静音
  }
  else
  {
  NRadioControl.settings.mute=true; //静音
  }
});

上面的写法正确吗??为什么win7下完美运行 而在xp下面却怎么也不能控制..是不是object中标签的type或者CLASSID属性的问题??
  相关解决方案