暂停 RTMP 直播后 VideoJS 不播放

Posted

技术标签:

【中文标题】暂停 RTMP 直播后 VideoJS 不播放【英文标题】:VideoJS doesn´t play after pause RTMP live stream 【发布时间】:2014-10-16 07:10:35 【问题描述】:

我正在使用 VideoJS 来自 Wowza 服务器的实时流,但是当我暂停播放器和他们我再次播放时,播放器无法恢复流。我需要重新加载网页才能重新开始直播。

<video id="videoID" class="video-js vjs-default-skin vjs-big-play-centered" poster="/images/image.png"  controls="controls"   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>

【问题讨论】:

您好,我遇到了与您相同的问题,您的解决方案似乎是正确的方向,但并没有完全解决问题。第二次点击播放后,许多其他功能停止工作。大播放按钮不会消失,也不会工作,时间也不会更新。你认为有一种方法可以对 myPlayer.off("play") 进行更多限制吗?我也不完全确定该功能中发生了什么。它删除了所有附加到“播放”元素的事件处理程序?还是删除事件“播放”之后的所有动作? "off" 删除指定的事件。不确定,为什么 play 事件在这里被删除。 【参考方案1】:

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

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

应该改成:

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

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

【讨论】:

这对 flash 工具有好处 - 任何人都解决了 html5 视频元素后备的问题?【参考方案2】:

我在这里找到了解决方案

$(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();
            );
        );
    );
);

【讨论】:

在回答一个老问题时,如果您包含一些上下文来解释您的答案如何提供帮助,那么您的答案对其他 *** 用户会更有用。请参阅:How do I write a good answer。

以上是关于暂停 RTMP 直播后 VideoJS 不播放的主要内容,如果未能解决你的问题,请参考以下文章

搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmphls直播流及普通视频)

videojs集成--播放rtmp流

带直播的 VideoJs

videojs修改播放器样式并实现四路动态播放rtmp流视频

是否可以在 Cesium 中显示 rtmp 直播视频?

前端页面播放 rtmp 流与 flv 格式视频文件