Closed Mxjjj closed 2 years ago
我看下呢,有测试源吗?
抱歉没有.. 都是用在内网
轮播的逻辑上 每次有新的视频进来 我会把上一个destroy掉再重新create一个进行播放 但时间长了就会出现这个报错 浏览器占用的内存会不断上升 最后页面会崩溃 还有一个问题是如果我把页面最小化 如果这时发生了轮播切换 会出现这个报错Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().
如果内存不断上升,应该就是内存溢出了。方便的话,贴下代码,我看下如何写的。
`useEffect(() => { return () => { playTimer && clearTimeout(playTimer); destroy(); } }, []);
useEffect(() => { if (.isEmpty(flowVideoUrl)) return; // destroy(); if (.isEmpty(jessibuca)) { create(); } playTimer && clearTimeout(playTimer); playTimer = setTimeout(() => { play(); }, 1000); }, [flowVideoUrl]);
const create = () => { let $container = document.getElementById(id); jessibuca = new window.Jessibuca({ container: $container, isResize: false, text: '', loadingText: '', debug: false, hasAudio: false, // isFlv: flowVideoUrl.includes('.flv'), showBandwidth: true, // 显示网速 operateBtns: { fullscreen: true, screenshot: true, play: true, audio: true, record: false, }, isNotMute: false, videoBuffer: 1, // 缓存时长 useMSE: true, useWCS: true, wcsUseVideoRender: true, autoWasm: true, // 在使用MSE或者WebCodecs播放H265的时候,是否自动降级到wasm模式 forceNoOffscreen: true, // 是否关闭离屏渲染 }); };
const play = () => { if (jessibuca && flowVideoUrl) { jessibuca.play(flowVideoUrl); } };
const destroy = () => { if (jessibuca) { jessibuca && jessibuca.clearView() jessibuca && jessibuca.destroy(); } jessibuca = null; };`
你是不是最小化页面,播放就会暂停?
不要设置两个 useMSE: true, useWCS: true,
这种情况下,会优先使用useMSE 的。
@Mxjjj 试下最新的dist目录下面。
你是不是最小化页面,播放就会暂停?
有可能是会暂停 我最小化再打开 会看到有几个视频是黑屏 过一会才会加载出画面 这么说来 我大概知道要怎么处理了 感谢
不要设置两个 useMSE: true, useWCS: true,
这种情况下,会优先使用useMSE 的。
我这样设置的话 如果不能用MSE的话不就会用WCS了吗 如果不要设置两个的话是只把useMSE: true把useMCS: false这样吗
@Mxjjj 试下最新的dist目录下面。
拉最新的代码吗 我去试下 感谢
不要设置两个 useMSE: true, useWCS: true, 这种情况下,会优先使用useMSE 的。
我这样设置的话 如果不能用MSE的话不就会用WCS了吗 如果不要设置两个的话是只把useMSE: true把useMCS: false这样吗
嗯,只要设置一个true 就行了,两个同时设置(播放器会检查是否支持),如果两个都支持,就会优先使用MSE
@Mxjjj 试下最新的dist目录下面。
拉最新的代码吗 我去试下 感谢
我用最新的dist测试了一下午 没有出现SourceBuff is full的报错了 但出现了另外的问题 轮播一段时间后 只有两个视频能出来 再后面就只能出来一个视频了 其他不能展示的视频会出现这个响应
内存的话 最后涨到1.2G就没有什么变化了 但因为后面只有一个视频能被播放出来 所以我也不能断定内存不断上涨这个问题是不是已经被解决
这个是网络请求报错吧,和播放器没关系了,你可以尝试配置下重试机制,这样就算请求不通,也可以重试。
这个是网络请求报错吧,和播放器没关系了,你可以尝试配置下重试机制,这样就算请求不通,也可以重试。
好的 非常感谢 想问一下 播放器支持播放H.265编码的流吗 我尝试了一下可以播放 但是没办法支持4路同时播放 CPU和内存占比会变得非常高 这种情况有办法通过配置解决吗
h265 是支持的,但是h265 只能支持软解。目前各大浏览器还没有开放h265的硬解码。如果想要四路播放h265,只能尝试降低分辨率,或者提升配置。
SourceBuff is full 我添加了防御,如果触发了,就会清空sourcebuffer 的缓存,重新触发播放。
@bosscheng 请问同一个页面下只能播放6路视频 6路以上的视频播不出来是什么原因 我单个播放每一路视频都是没问题的 同一个页面下就不支持6路以上了
http 协议还是ws?协议? 如果是http 协议,可以看下这个 http://jessibuca.monibuca.com/document.html#%E5%A4%9A%E5%88%86%E5%B1%8F%E8%B6%85%E8%BF%87-6-%E8%B7%AF%E4%B8%8D%E8%83%BD%E6%92%AD%E6%94%BE
是这个原因 非常感谢!
请问这个会造成内存溢出吗?怎样才不会出现这个错误?感谢