嘿,我试图让HLS流在站点/应用程序我使用Node.js的,JavaScript的,HTML建设工作...HLS流式工作不
我用这确切的代码片段在这里 -
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<video id="video"></video>
<script>
if(Hls.isSupported()) {
var video = document.getElementById('video');
var hls = new Hls();
hls.loadSource('https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED,function() {
video.play();
});
}
</script>
时,我只加载它在一个正常的HTML页面粘贴伟大的工程..
然而,我的网页上,我有一个空白的身体加载HTML页面部分,除了这几行 -
<script type='text/javascript' src="/inc/js/veud/createServerWsConnection.js"></script>
<script src="inc/js/veud/registerWsHandlers.js"></script>
<script>
var ws = createWebSocket();
registerHandlers(ws);
</script>
<script src ="https://cdn.jsdelivr.net/npm/[email protected]"></script>
它创建一个websocket连接,并从包含div部分的服务器接收一条消息,然后将该消息附加到主体的末尾。
当发生这种情况时,hls应用程序无法加载,但没有流式视频可用,但是,如果我加载了一个完全相同的HTML测试HTML页面,而div部分刚刚已经写在HTML代码中一开始,不是通过websocket发送div部分,然后在浏览器页面加载后追加它,然后它完美地工作。
即使页面的HTML代码看起来与检查完全相同,Hls当包含上述第一个代码的div部分在从websocket消息接收后附加到Html页面时,应用程序/流视频不工作。
可能H1在浏览器最初访问网站之后,它是否被添加到Html文档中,因此不会被激活?我是否需要进行某种重绘/刷新以使其加载?
我知道HLS不会因为某些原因而重新加载,因为当HLS工作并检查Html时,它会在HLS加载的视频选项卡下为网站的HTML添加一些内容,从而增加了一个不存在的src之前,所以像
<video id="video"></video>
成为
<video id="video" src="blob:http://172.30.204.207/1d2771a3-f86d-42ed-bec7-794b4a4a4770"></video>
发生这种情况时,我把HLS代码在测试HTML文件并加载它这样的,但是当HLS视频对象/脚本部分被添加到div部分通过websocket发送并附加到页面在客户端请求页面之后,src =“blob:...”部分不会自动添加到HTML中,这让我认为出于某种原因,HLS在客户端请求页面后追加到页面时不会加载..
任何方式我可以刷新页面,使其工作或强制它加载div部分后添加应用程序?
这种卡在这里,所以任何帮助,非常感谢。
耶做这样的说法没有似乎对任何工作,因为当我通过包含代码的媒体部分发送的DIV部分,即使我只是把如果(HLS。isSupported(){后跟一个日志语句没有任何记录,所以它似乎是以编程方式向页面添加一个新的视频对象,而不是从一开始就与Hls工作?所以我唯一的选择是使用iframe加载其上有Hls代码的另一个html页面?这似乎是工作,但.. – Chase
不,这应该工作。你不是通过动态发送JS,是吗? – Brad