javascript - 使用javascript控制嵌入式windows media player

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

当我运行它时出现错误:

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

关于javascript - 使用javascript控制嵌入式windows media player,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553381/

相关文章:

html - CSS如何把标题放在边框前面?

python - 使用 Python 从 windows media player 获取当前播放的歌曲

c# - 如何使用 WebResponse 下载 .wmv 文件

javascript - 默认 "All"选项不适用于 ng-option 选择列表

javascript - 使用 JavaScript 滚动 iframe?

html - IE9 及更新版本中菜单中的白色 block

html - iphone5 上的 iframe 问题默认将宽度设置为 980 px

javascript - 嵌入到 HTML 中的 Windows 媒体播放器控件 - 开始播放后更改控件的大小

javascript - 2020 年 Web Serial API 的状态

javascript - 使用 Tampermonkey 关闭延迟弹出窗口(实际上是 "pop-over"模型对话框)