MediaElementJS Player + Перезагрузка потока HLS - есть решение? - PullRequest
0 голосов
/ 31 декабря 2018

Как мне перестать показывать сообщение об ошибке сети и просто автоматически перезагрузить проигрыватель, когда проигрыватель теряет соединения с потоком?

Я использую поток 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 голосов
/ 31 декабря 2018

Решение состоит из двух этапов:

Сначала вам нужно прикрепить событие, чтобы уведомить вас о создании игрока:

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