MediaElementJS Player +重新加载HLS流-有解决方案吗?

时间:2018-12-30 23:38:47

标签: javascript ffmpeg stream media-player mediaelement.js

当播放器失去与流的连接时,如何停止显示网络错误消息并只是自动重新加载播放器?

我正在为此播放器使用HLS流:MediaElementJS

我在博客中找到了此解决方案,但对我而言,这不是最佳选择,而且可能很难在24小时内设置私有代理。 这可以通过运行应用内代理从外部解决。我将播放器放在包装中,该包装也启动了HTTPListener。然后,我不给MediaElement http://server.com/file.m3u8,而是将此URL重写为http://localhost:58392/http/80/server.com/file.m3u8。 FFmpeg使用请求命中代理,然后代理解析请求中的URL,获取内容并将其返回给ffmpeg。

这是我在js中的播放器配置:

    <script>
        $("video").mediaelementplayer({
            features: ["playpause", "volume", "progress", "airplay", "chromecast", "fullscreen"],
            forceLive: true
        });
        playerObject = document.getElementById("player");
    </script>

1 个答案:

答案 0 :(得分:0)

解决方案包括两个步骤:

首先,您需要附加一个事件,以通知您正在创建的玩家:

   $("video").mediaelementplayer({
        features: ["playpause", "volume", "progress", "airplay", "chromecast", "fullscreen"],
        forceLive: true,
        success: playerReady
    });

现在,在创建播放器之后,您可以附加到播放器的“结束”事件:

function playerReady(media, node, player) {
  media.addEventListener('ended', function(e) {
    //Do what you want, e.g. reload the page
  });
}