HLS.JS Snippet не полностью работает на онлайн-эмуляции - PullRequest
0 голосов
/ 13 июня 2019

У меня есть простой скрипт HLS.JS для воспроизведения потока HLS с сервера HLS на

http://<my server address>/live/livestream.m3u8

Я следую руководству по #getting на HLS.JS на GitHub

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video id="video" controls autoplay muted></video>
<script>
  var video = document.getElementById('video');
  if(Hls.isSupported()) {
    var hls = new Hls();
    hls.loadSource('http://<my server address>/live/livestream.m3u8');
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });
 }
  else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = 'http://<my server address>/live/livestream.m3u8';
    video.addEventListener('loadedmetadata',function() {
      video.play();
    });
  }
</script>

Фрагмент работает нормально, если я сохраняю его локально и открываю в любом браузере, и другие люди могут просматривать его, также открыв HTML в своем браузере. Но когда я пытаюсь использовать его как HTML, он не работает, например, помещая фрагмент в https://jsfiddle.net/, видеопоток не запускается. Это почему? Я могу предоставить точный IP-адрес для полной демонстрации, если кому-то понадобится помощь.

Это потому, что мой сервер не HTTPS?

Я использовал https://hls -js-latest.netlify.com / demo / , чтобы попытаться отладить проблему. Сначала это показывает проблему с CORS, но после того, как я перехожу в верхний правый угол, чтобы мой браузер загружал небезопасные скрипты, страница загружается нормально.

Попытка также передать этот фрагмент с HTTP-сервера, видео не будет воспроизводиться

...