VideoJS Resolution Switcher报告“this.updateSrc不是函数”

时间:2017-04-05 22:29:11

标签: javascript video.js

我随机面对这个错误。有时视频加载很好,但大多数情况下它显示“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)
        });

错误

Console Error

enter image description here

2 个答案:

答案 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={},就可以了。