我正在一个有很多实时流视频的网站上工作。在浏览器中闲置一定时间(分钟)后,一对实时流式视频变黑,必须刷新页面或向上/向下滚动才能使其正常工作。
用于在前端生成实时流视频的HTML代码是:
<div class="h264-live-view embed-responsive embed-responsive-16by9" data-media-type="video" data-media-playback="play">
<video poster="./images/000000-0.png"
src="./geb5ac04-8f4e-462a-5fef-abc"></video> // placed a break-point here
</div>
在在视频标签上方放置一个断点时,从下面的hls.js
代码中调用第#A行 if (this.media) {
URL.revokeObjectURL(this._objectUrl);
// clean up video tag src only if it's our own url. some external libraries might
// hijack the video tag and change its 'src' without destroying the Hls instance first
if (this.media.src === this._objectUrl) {
this.media.removeAttribute('src'); // line#A
this.media.load();
} else {
logger["b" /* logger */].warn('media.src was changed by a third party - skip cleanup');
}
}
我在hls.js中使用的代码在此处https://video-dev.github.io/hls.js/stable/api-docs/file/src/controller/buffer-controller.js.html
问题陈述:
我想知道当实时流式视频出现黑屏时,如果几分钟内网页上没有任何活动,这可能是什么原因?
有什么办法可以解决该错误?有没有我可以覆盖的代码来修复此错误?还有一个问题是为什么调用onMediaDetaching ()
函数?如上所述,在视频标签上设置断点时,将调用行#A (this.media.removeAttribute('src');)
。