如何清理当前版本的textureCache A-frame?
How to clean up textureCache A-frame at current version?
我正在开发一个多摄像头流媒体应用程序,我注意到切换摄像头后内存使用量不断增加。我在 hls.js 一侧清理。但我没有看到任何方法可以在框架中做到这一点。
我正在使用 1.2.0
只找到老post推荐
document.querySelector('a-scene').systems.material.textureCache
和 运行 .dispose()
这看起来像是在 0.3.0 版本上工作,但从那以后就没有了。
有没有清理纹理的方法,或者这现在是自动发生的吗?
据我所知,textureCache
是一个承诺加载纹理 (image, video) 的对象。
有一个 clearTextureCache
函数,但它会清除对象,而不处理加载的纹理。
我会尝试遍历 textureCache
,获取 THREE.Texture
对象并对它们调用 .dispose()
。然后你可以做 clearTextureCache()
来清理它。在下面的示例中 - 任何单击 io window 都会在控制台中打印缓存的纹理:
<script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
<script>
AFRAME.registerComponent("foo", {
init: function() {
window.addEventListener("click", e => {
const textureCache = this.el.systems.material.textureCache;
console.log("Textures in the cache:")
for (let key in textureCache) {
textureCache[key].then(val => console.log(val))
}
})
}
})
</script>
<a-scene foo>
<a-image position="-1 1.6 -2" src="https://i.imgur.com/wjobVTN.jpeg"></a-image>
<a-image position="1 1.6 -2" src="https://i.imgur.com/AD3MbBi.jpg"></a-image>
<a-sky color="#ECECEC"></a-sky>
</a-scene>
我正在开发一个多摄像头流媒体应用程序,我注意到切换摄像头后内存使用量不断增加。我在 hls.js 一侧清理。但我没有看到任何方法可以在框架中做到这一点。 我正在使用 1.2.0
只找到老post推荐
document.querySelector('a-scene').systems.material.textureCache
和 运行 .dispose()
这看起来像是在 0.3.0 版本上工作,但从那以后就没有了。
有没有清理纹理的方法,或者这现在是自动发生的吗?
据我所知,textureCache
是一个承诺加载纹理 (image, video) 的对象。
有一个 clearTextureCache
函数,但它会清除对象,而不处理加载的纹理。
我会尝试遍历 textureCache
,获取 THREE.Texture
对象并对它们调用 .dispose()
。然后你可以做 clearTextureCache()
来清理它。在下面的示例中 - 任何单击 io window 都会在控制台中打印缓存的纹理:
<script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
<script>
AFRAME.registerComponent("foo", {
init: function() {
window.addEventListener("click", e => {
const textureCache = this.el.systems.material.textureCache;
console.log("Textures in the cache:")
for (let key in textureCache) {
textureCache[key].then(val => console.log(val))
}
})
}
})
</script>
<a-scene foo>
<a-image position="-1 1.6 -2" src="https://i.imgur.com/wjobVTN.jpeg"></a-image>
<a-image position="1 1.6 -2" src="https://i.imgur.com/AD3MbBi.jpg"></a-image>
<a-sky color="#ECECEC"></a-sky>
</a-scene>