我有一個aspx頁面,其上有Windows Media Player作爲對象。託管在aspx頁面上的媒體播放器不會SendPlayStateChangeEvents
當它完成播放音頻文件時,它應該引發一個事件,但事實並非如此。 該頁面還包含控制播放器的Silverlight。
在這裏,我添加事件偵聽器:
var slCtl = null;
var WMP = null;
function pluginLoaded(sender, args) {
slCtl = sender.getHost();
WMP = document.getElementById("wmp");
if (WMP.addEventListener) {
WMP.addEventListener('playStateChange', sendPlayerStateToSL, false);
} else if (WMP.attachEvent) {
WMP.attachEvent('playStateChange', sendPlayerStateToSL);
}
}
下面我們就針對WMP
<object id="wmp" style="position: absolute; left: 0; top: 0;" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="audio/x-ms-wma" >
<param name="SendPlayStateChangeEvents" value="True" />
<param name="AutoStart" value="True" />
<param name="PlayCount" value="1" />
<param name="AutoSize" value="True" />
<param name="uiMode" value="invisible" />
</object>
我就可以開始播放音頻文件,但是當它完成WMP不會引發一個事件和HTML sendPlayerStateToSL()永遠不會運行。
function sendPlayerStateToSL() {
switch (WMP.playState) {
case 3:
slCtl.Content.mySLapp.WmpStartedPlaying(WMP.playState, document.getElementById("wmp").currentMedia.durationString);
break;
case 8:
if (document.getElementById("wmp").uiMode == "invisible")
slCtl.Content.mySLapp.WmpEndedPlaying(WMP.playState);
else {
document.getElementById("wmp").uiMode = "invisible";
slCtl.Content.mySLapp.SetFocusToKennitala();
}
break;
default:
break;
}
奇怪的是,這在幾個月前工作正常,但現在它就像是有所改變。
有沒有人有線索?
鏈接還提供了一個解決辦法,雖然有些意見表明,它可能無法正常工作的「添加兼容模式工作:「 – rbatt