【问题标题】:videojs fails to change rtmp srcvideojs 无法更改 rtmp src
【发布时间】:2014-07-26 16:53:27
【问题描述】:

我正在使用Videojs 作为我的客户端播放器,并正在研究一种动态更改实时 RTMP 源的方法,其最终目标是检测带宽并将源视频更改为更高或更低的比特率。

我遇到的问题是,当我尝试使用通过其他帖子找到的示例来简单地更改源时,会导致 video.js 代码中出现错误。

这是jsfiddle...只需打开浏览器的调试控制台,然后刷新页面,当超时运行时您会看到一个错误,它会命中 $vid_obj.src(...)

HTML:

<video id="video_player" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
data-setup='{ "techOrder": ["html5", "flash"] }'> 
<source src="rtmp://217.23.11.44/live/myStream" type='rtmp/mp4'>
</video>

Javascript:

videojs("video_player").ready(function () {
    hsnPlayer = this;
    hsnPlayer.play();

    setTimeout(function () {
        var $vid_obj = _V_("video_player");

        $vid_obj.pause();
        $vid_obj.src({ type: "rtmp/mp4", src: 'rtmp://hsn.mpl.miisolutions.net/hsn-live01/mp4:420p500kB31' });
        $vid_obj.load();
        $vid_obj.play();
    }, 10000);
});

错误是“TypeError: this.ge is not a function”

所以我的问题是我在尝试更改源时是否犯了错误,或者这是我应该在他们的 git 问题下报告的错误?

【问题讨论】:

    标签: javascript live rtmp video.js


    【解决方案1】:

    试着把你的代码改成这样:

        if (this.techName === "Html5"){
            this.src(new_source.src);
        } else {
            this.loadTech(this.techName, {src: new_source.src});
        }
    

    另外,techName 仅在 videojs 的开发版本中可用(或由 uglify/uglify2 缩小)。您应该在 videojs 的缩小版本中将 techName 替换为 xa(可在 videojs.com 上获得)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      相关资源
      最近更新 更多