2011-09-26 49 views
2

我嵌入了一些我需要显示的视频,如果点击一个链接。所以我试图做的是点击一个链接,它会显示一个视频,用户可以按下播放。如果他们点击另一个链接,则前一个视频会停止并显示一个新视频。目前的HTML结构我是:用javascript控制嵌入式windows媒体播放器

<div> 
    <ul> 
     <li><a onclick="ShowVideo(0);" href="javascript:void(0);" class="CalltrackLink">Missed Opportunities</a></li> 
     <li><a onclick="ShowVideo(1);" href="javascript:void(0);" class="CalltrackLink">Create User</a></li> 
    </ul> 
</div> 
<div> 
    <div id="Video1Div" style="display:none"> 
     <OBJECT id="Video1" width="640" height="480" 
     STANDBY="Loading Windows Media Player components..." 
     CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" 
     type="application/x-oleobject"> 

      <PARAM NAME="URL" VALUE="Video1.mp4" /> 
      <PARAM NAME="SendPlayStateChangeEvents" VALUE="True" /> 
      <PARAM NAME="AutoStart" VALUE="False" /> 
      <PARAM NAME="ShowControls" value="True" /> 

     </OBJECT> 
    </div> 
    <div id="Video2Div" style="display:none"> 
     <OBJECT id="Video2" width="640" height="480" 
     STANDBY="Loading Windows Media Player components..." 
     CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" 
     type="application/x-oleobject"> 

      <PARAM NAME="URL" VALUE="Video2.mp4" /> 
      <PARAM NAME="SendPlayStateChangeEvents" VALUE="True" /> 
      <PARAM NAME="AutoStart" VALUE="False" /> 
      <PARAM NAME="ShowControls" value="True" /> 

     </OBJECT> 
    </div> 
</div> 

我有以下的javascript这是我从互联网上的各种渠道获得:

function ShowCalltrack(i) { 
    $('#Video1Div').hide(); 
    $('#Video2Div').hide(); 

    document.getElementById("Video1Div").controls.stop();  
    document.getElementById("Video2Div").controls.stop(); 

    if(i == 0) 
    { 
     $('#Video1Div').show(); 
    } 
    else if(i == 1) 
    { 
     $('#Video2Div').show(); 
    } 
} 

当我运行此我得到的错误:

Unable to get value of the property 'stop': object is null or undefined

如果我删除了违规代码,那么当用户点击另一个链接时,以前的视频仍将播放,如果用户没有手动停止视频,则可以听到音频。

我能够通过使用此代码停止以前的视频:

var Video1 = document.getElementById("Video1Div"); 
var Video1Text = Video1.innerHTML; 
Video1.innerHTML = ''; 
Video1.innerHTML = Video1Text; 

这也从打不过,停止录像,这样做的问题是,如果你回去,你有一个链接以前打开的视频会从之前停止的位置恢复,并且我需要从头开始重新开始。

任何想法?

回答

2

你解决DIV元素,而不是控制,具有ID Video1 ;

var Wmp = document.getElementById("Video1"); 
if (Wmp.controls.isAvailable('Stop')) 
    Wmp.controls.stop(); 
+0

是的,愚蠢的错误。应该抓住那个。 – anothershrubery

+0

很好的答案!你愿意帮助我http://stackoverflow.com/questions/33899776/start-stop-methods-for-embeded-windows-media-player-via-vbscript请。 –

2

我认为这应该是一个'S'停止是资本

document.getElementById("Video1Div").Stop(); 

而不是

document.getElementById("Video1Div").controls.stop();