使用javascript控制嵌入式Windows媒体播放器

时间:2011-09-26 09:53:00

标签: javascript html windows-media-player

如果点击了链接,我已经嵌入了一些我需要显示的视频。所以我要做的就是点击链接,它会显示一个视频,用户可以按下该视频。如果他们点击其他链接,则会停止上一个视频并显示新视频。我当前的HTML结构是:

<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();
    }
}

当我运行时,我收到错误:

  

无法获取属性“stop”的值:object为null或undefined

如果我删除了有问题的代码,那么当用户点击另一个链接时,前一个视频仍然会播放,如果用户没有手动停止播放,您可以听到音频。

我可以使用此代码停止上一个视频:

var Video1 = document.getElementById("Video1Div");
var Video1Text = Video1.innerHTML;
Video1.innerHTML = '';
Video1.innerHTML = Video1Text;

这确实阻止了视频播放,但是,问题是,如果你回到之前打开的链接,视频将从之前停止的地方恢复,我需要重新开始从一开始。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您对DIV元素的寻址,而不是ID Video1;

的控件
var Wmp = document.getElementById("Video1");
if (Wmp.controls.isAvailable('Stop'))
   Wmp.controls.stop();

答案 1 :(得分:2)

我认为应该是停止'S'的资本

document.getElementById("Video1Div").Stop();

而不是

document.getElementById("Video1Div").controls.stop();