javascript - Videojs - 如何动态更改视频海报

标签 javascript ajax json video.js poster

我想制作一个播放列表,视频源和海报是动态加载的。这是我的代码

var myFunc = function(){
var myPlayer = this;
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        if (xmlhttp.responseText != 'false') {
            var obj = eval ("(" + xmlhttp.responseText + ")");
            // update the video source
            myPlayer = myPlayer.src(obj.videoFiles);
            // update the video poster
            obj = eval ("(" + '{"controls": true, "autoplay": false, "preload": "auto", "poster": "' + obj.posterUrl + '"}' + ")");
            myPlayer = videojs("playlist", obj);
            // start playback
            myPlayer.play();
        }
    }
}
xmlhttp.open("GET",...,true);
xmlhttp.send();
};

var myPlayer = videojs("playlist");
myPlayer.on("ended", myFunc);

视频播放良好(一个接一个),但海报不显示。我已经通过 alert obj.posterUrl 进行了测试,它是正确的。请帮助我。

亲切的问候, 唐

最佳答案

在控制台显示中输入 videojs('YOUR_VID_ID').poster

function (src){
  if (src === undefined) {
    return this.poster_;
  }

  // update the internal poster variable
  this.poster_ = src;

  // update the tech's poster
  this.techCall('setPoster', src);

  // alert components that the poster has been set
  this.trigger('posterchange');
} 

因此您应该能够执行如下操作:myPlayer.poster( obj.posterUrl );

注意:这只会更改 VideoJS 海报图像,不会更改视频海报属性。

关于javascript - Videojs - 如何动态更改视频海报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270361/

相关文章:

c++ - 如何在字符串 C++ 中解析简单的 json?

javascript - 切换音乐的onClick图片

javascript - 数据表服务器端列过滤器搜索延迟

json - 如何使用jq交换对象的键和值?

php - 如何使用 javascript 轮询 PHP 页面?

javascript - 表单标签过早关闭

java - 转换 JSON 结构

javascript - 相关下拉错误

javascript - Azure Functions - 导入自定义 Node 模块

javascript - MVC 中如何在两个模型之间共享对象?