【问题标题】:MediaElementJS Player + Reload HLS stream - Any Solution?MediaElementJS 播放器 + 重新加载 HLS 流 - 任何解决方案?
【发布时间】:2019-05-27 16:24:00
【问题描述】:

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

我正在为此播放器使用 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>

【问题讨论】:

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


    【解决方案1】:

    解决方案分为两步:

    首先你需要附加一个事件来通知你正在创建的播放器:

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

    【讨论】:

    • 嗨@eugen,感谢您的解决方案。如果你这么好心,你能给我写重启播放器的代码吗?而不是整个网站。谢谢,DiX,新年快乐
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2014-08-30
    • 2021-05-04
    相关资源
    最近更新 更多