2011-09-26 50 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();