在aspx页面上托管的媒体播放器不会发送SendPlayStateChangeEvents

时间:2014-02-20 22:35:06

标签: javascript html wmp

我有一个带有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;

        }

奇怪的是,几个月前这种情况正常,但现在情况已经发生了变化。

有没有人有线索?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

解决以下问题:)

<meta http-equiv="X-UA-Compatible" content="IE=8" />