2011-11-29 61 views
1

希望你能幫上忙。Windows Media Player JavaScript控制 - 多玩家問題

我在我的ASP.net MVC3應用程序中顯示了幾個WindowsMediaPlayer對象的屏幕。摘自我的看法:

<object id="audio" width="100%" height="65" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" name="mediaPlayer"> 
    <param name="URL" value="/QualityAssurance/PlayRecording/<%: Model.CustomerOrder.Id.ToString() %>/<%: System.IO.Path.GetFileName(Model.RecordingFilename) %>"/> 
    <param name="SendPlayStateChangeEvents" value="true"/> 
    <param name="AutoStart" value="false"/> 
    <param name="PlayCount" value="1"/> 
    <param name="stretchtofit" value="true"/> 
    <param name="showstatusbar" value="true"/> 
    <param name="enablepositioncontrols" value="true"/> 
    <param name="showpositioncontrols" value="true"/> 
    <param name="enabletracker" value="true"/> 
    <param name="showcontrols" value="true"/> 
    <param name="showaudiocontrols" value="true"/> 
    <param name="enablecontextmenu" value="true"/> 
</object> 

這些球員可能有幾個在任何時間在屏幕上。我需要創建一段停止播放所有這些媒體播放器的JavaScript代碼。我的代碼目前看起來是這樣的:

<script type="text/javascript" language="javascript"> 
    function stopAllMedia() { 
     var elements = document.getElementsByTagName("object"); 
     var i = 0; 
     for (i = 0; i < elements.length; i++) { 
      stopMedia(document.getElementById(elements[i].id)); 
     } 
    } 

    function stopMedia(mediaPlayer) { 
     var wmp = new Object(); 
     wmp.wmv = mediaPlayer.object; 
     wmp.wmv.controls.stop(); 
    } 
</script> 

此代碼將成功停止第一WMP對象回放,而不是其他。但是,如果我在stopMedia中放置了一個警報(''),它會多次調用(即對頁面上的每個WMP調用一次)。但由於某種原因,它不會控制其他對象。

你能幫忙嗎?

謝謝,

西蒙。

+0

有同樣的問題 – MilkyWayJoe

+0

@MilkyWayJoe,對不起延誤 - 錯過了你的信息。最後,我決定在頁面上放置一個媒體播放器,而不是每個媒體的「播放」和「停止」按鈕。這個工作好得多,也可能更有效率的資源。 – SimonGoldstone

+0

我不知道它是否仍然有幫助,或者即使它現在對你有用,但看看[這個問題](http://stackoverflow.com/questions/10436396/embedded-player-does-not-work -in-遠程瀏覽器/ 10437201#10437201)。它可以適應多個玩家 – MilkyWayJoe

回答

1

您是否嘗試重寫{{{stopMedia}}}函數?

function stopMedia(mediaPlayer) { 
    mediaPlayer.controls.stop(); 
} 

我不確定這是否正常,但有一個嘗試!

+0

嗨@poweMicha,抱歉花了這麼長的時間來回復 - 我錯過了你的答案。最後,我決定停止使用多個媒體播放器對象,而只是使用一個,並且有幾個播放和停止按鈕,每個按鈕都向我的單個播放器發送命令。這是一個更好的實現。但是,謝謝你的建議。 – SimonGoldstone