系统相关
首页 > 系统相关> > 使用javascript控制嵌入式Windows媒体播放器

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

作者:互联网

如果点击链接,我已经嵌入了一些我需要显示的视频.所以我要做的就是点击链接,它会显示一个视频,用户可以按下该视频.如果他们点击其他链接,则会停止上一个视频并显示新视频.我目前的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();
    }
}

当我运行这个时,我得到错误:

Unable to get value of the property ‘stop’: object is null or undefined

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

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

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

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

有任何想法吗?

解决方法:

您对DIV元素的寻址,而不是具有ID Video1的控件;

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

标签:html,javascript,windows-media-player
来源: https://codeday.me/bug/20190902/1794314.html