在调用videojs getPlayers方法后调用播放器对象中的每个Play方法

时间:2016-11-28 11:46:04

标签: javascript arrays video.js

我的页面中有一些玩家:

<video id="cam-1" class="video-js vjs-default-skin tv-video"
                style="float: left">
                <source src="../videos/video11.webm" type="video/webm">
                <p class="vjs-no-js">
                    To view this video please enable JavaScript, and consider upgrading to a web browser that
  <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
                </p>
            </video>

我正在使用videojs.getPlayers()方法获取所有这些内容,然后我就会这样做:

for(let i = 0; i < Object.keys(this._players).length; i++) {
    this._players[i].play();
}

但是this._players [i]正在返回&#34; undefined&#34;。

即使我只是打电话

videojs("cam-1").play() it doesn't work!

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您正在以错误的方式迭代键,如下所示,

var players = this._players;
players.forEach((itm) => {
  players[itm].play();
});

或者,如果您希望我以自己的方式提供解决方案,那么

var keys = Object.keys(this._players);
for(let i = 0; i < keys.length; i++) {
    this._players[keys[i]].play();
}

答案 1 :(得分:0)

我对video.js一无所知,但你正在做的是在this._players对象中搜索不存在的属性。你把this._players混淆为一个对象的数组。你需要做什么 for (var i in this._players) { this._players[i].play(); } 以上我将是关键。

for(var i in ...)适用于Object和Array。