【发布时间】:2021-04-21 22:30:21
【问题描述】:
我有一个正在监听 mjpeg 视频流的 html/javascript 客户端:
myImg = document.getElementById('my-image');
myImg.src = 'http://myserver.com/camera.mjpeg';
工作正常,但如果视频流因任何原因而死,视频源“冻结”在最后接收到的图像上,我没有机会向用户显示错误。我看到this post 提供了一个解决方案(在流旁边创建一个长时间运行的ajax 请求),它只在某些时候有效。我希望有一种更受支持的方法,例如通过disconnect 事件或其他方式。
即使是接收数据时的事件也总比没有好。至少这样我就可以判断它是否已经有一段时间了,因为框架出现了。使用addEventListener('load') 仅适用于第一帧。
有什么想法吗?
更新:
基于 cmets 我尝试了以下方法,但都没有奏效:
myImg.addEventListener('error', event => { ... });
myImg.addEventListener('stalled', event => { ... });
myImg.addEventListener('suspend', event => { ... });
【问题讨论】:
-
它会发出
error事件吗?myImg.addEventListener("error", () => {...});? -
@zero298 不幸的是它没有
-
您是否可以尝试收听
stalled和suspend事件其中之一可能适用于您的情况 -
@Joseph 感谢您的建议,不幸的是,这两个事件似乎都没有触发。我试过
myImg.addEventListener('stalled', event => { ... });和myImg.addEventListener('suspend', event => { ... }); -
您是否尝试过放入视频属性 的时候有几个回调选项
标签: javascript mjpeg