暂停RTMP直播后,VideoJS无法播放

时间:2014-08-22 12:17:34

标签: html5-video rtmp video.js

我正在使用VideoJS从Wowza服务器获取实时流,但是当我暂停播放器并且我再次播放时,播放器无法恢复流。我需要重新加载网页才能再次启动流。

<video id="videoID" class="video-js vjs-default-skin vjs-big-play-centered" poster="/images/image.png"  controls="controls" width="320" height="240" data-setup='{"techOrder": ["flash"]}'>
<source src="rtmp://www.myhost.com:1935/live/live.stream" type="rtmp/mp4" />
</video>

当暂停事件出现时,有什么方法可以停止或重新加载VideoJS吗?

编辑:我使用此脚本遇到了解决方案:

<script type="text/javascript">
var myPlayer = videojs('videoID');
videojs("videoID").ready(function(){
var myPlayer = this;
myPlayer.on("pause", function () {
myPlayer.on("play", function () { myPlayer.load (); myPlayer.off("play"); });
});
});
</script>

2 个答案:

答案 0 :(得分:3)

好的,我找到了解决方案。您不需要从播放器中剥离所有播放事件,而是需要在7337行(在我认为的版本4.11.4中)中编辑video.dev.js中的flash播放事件。这就是说:

vjs.Flash.prototype.play = function(){
    this.el_.vjs_play();
};

应该改为:

vjs.Flash.prototype.play = function(){
    this.el_.vjs_load();
    this.el_.vjs_play();
};

以便在播放事件之前调用load事件。

答案 1 :(得分:0)

我在这里找到了解决方法

$(document).ready(function(){
    var player = videojs('really-cool-video', { /* Options */}, function () {
        // ...

        var player = this;
        player.on("pause", function () {
            player.one("play", function () {
                player.load();
                player.play();
            });
        });
    });
});