动态加载 Brightcove 视频仅加载播放器一次



我知道可以动态加载 brightcov 播放器,如本例所示:

https://codepen.io/team/rcrooks1969/pen/JywoKE (与播放器一起创建一个脚本标签并实例化脚本的视频加载,类似于这样( s.src = "//players.brightcove.net/{accountID}/{playerID}_default/index.min.js"; s.onload = callback;

我正在将多个视频加载到一个页面中,所有这些视频都是动态加载并使用相同的播放器。 有没有办法只加载一次该脚本并且仍然能够使用videoJs('myPlayer')

我试图改编这个例子,但 videojs 总是未定义的, https://codepen.io/optionsit/pen/LBvXZm?editors=1011 (每个按钮应使用相同的播放器脚本加载不同的视频(

我也尝试使用承诺,但没有运气,将承诺解析为脚本的 onload 事件只会解决第一个视频。

如果您将initPlayer函数更改为使用bc()函数来初始化播放器而不是videojs(),它将起作用。

initPlayer = function(player){
// +++ Initialize the player and start the video +++
myPlayer = bc(player);
myPlayer.play();
}

我通过修改您的 CodePen 来确定这一点。

你需要等到videojs被加载。只需禁用渲染按钮,然后您可以执行以下操作:

s.onload = function() { 
var btns = document.getElementByTagName('button');
for (i = 0; i < btns.length;i++) {
btns[i].disabled = false;
}
// or with jQuery simply $('button').prop('disabled', false);
}

最新更新