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

Call each Play method in player object after call videojs getPlayers method

我的页面中有一些玩家:

<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] 正在返回 "undefined"。

即使我只打电话

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

我该怎么做?

您以错误的方式迭代键,请按以下方式操作,

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

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

for (var i in ... ) 适用于对象和数组。