我有一个简单的HLS.JS脚本,用于从位于以下位置的HLS服务器播放HLS流
http://<my server address>/live/livestream.m3u8
我正在遵循GitHub上关于HLS.JS的#入门指南
<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服务器提供该代码段,但视频无法播放