我随机面对这个错误。有时视频加载很好,但大多数情况下它显示“updateSrc不是一个函数”。视频通常在页面刷新时加载。我已经尝试了一切,但无法解决这个问题。
HTML
<video id="<?php echo $id; ?>" class="video-js vjs-16-9 vjs-big-play-centered" controls preload="auto" width="100%" height="100%" poster="<?php echo (isset($mPoster))?$mPoster:'';?>" data-setup="{}">
<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>
的JavaScript
var videoplayer = videojs('<?php echo $id; ?>', {
plugins: {
videoJsResolutionSwitcher: {
default: 480,
dynamicLabel: true
}
}
}, function() {
this.updateSrc(<?php echo (isset($code))?$code:'';?>)
this.preload(false)
this.on('resolutionchange', function() {
console.info('Source changed to %s', this.src())
})
this.autoplay(true)
});
错误
答案 0 :(得分:0)
通过动态生成视频标记找到修复程序。 这是代码:
var videotaghtml= "<video id='<?php echo $id; ?>' class='video-js vjs-16-9 vjs-big-play-centered'"+ " controls preload='auto' width='100%' height='100%' poster='<?php echo (isset($mPoster))?$mPoster:'';?>'"+ "data-setup=\"{}\">"+
"<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>";
$( "#videotag" ).append(videotaghtml);
答案 1 :(得分:0)
我之前遇到过这个问题。
我认为这是因为代码中的data-setup={}
。因此,javascript中的插件未初始化,因为 videojs 仅考虑数据设置或插件。
有时会考虑data-setup={}
。因此,不调用包含updateSrc方法的videojs分辨率切换器。因此错误。只需删除data-setup={}
,就可以了。