我有一个带有Windows Media Player的aspx页面作为对象。
当它完成播放音频文件时,它应该引发一个事件,但事实并非如此。 该页面还包括控制播放器的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的HTML
<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不会引发一个事件 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;
}
奇怪的是,几个月前这种情况正常,但现在情况已经发生了变化。
有没有人有线索?
答案 0 :(得分:1)
在IE11上似乎已被打破: https://connect.microsoft.com/IE/feedback/details/811810/events-not-firing-on-wmp-object-in-ie11
答案 1 :(得分:0)
解决以下问题:)
<meta http-equiv="X-UA-Compatible" content="IE=8" />