作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 unity3d 中为 Windows Phone 平台制作了一个带有两个简单 View 的演示应用程序。在第一个 View 中,我有一个按钮和一个文本,从检查器中我分配给按钮一个事件(单击时)以打开第二个 View 。在这个 View 中,我在面板中有一个原始图像,用于将 mainTexture 分配给 webCamTexture 以在手机上启动相机。
var webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
在第二个 View 中,我有一个按钮,我可以在其中关闭相机并显示第一个 View (关闭当前 View )webCameraTexture.Stop();
如果我多次这样做,我手机上的 Play() 和 Stop() 内存将如下所示:
我怎样才能清除内存,当我停止相机时,因为有时会给我一个错误“没有足够的存储来完成这个操作”并退出应用程序。
代码开始停止摄像头:
//call onClick Button (next)
public void StartMyCamera()
{
webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
}
//call onClick btn (back - close camera)
public void StopMyCamera()
{
//to stop camera need only this line
webCamTexture.Stop();
//----try to clear
/*GL.Clear(false, true, Color.clear);
GC.Collect();
GC.WaitForPendingFinalizers();
rawImage.StopAllCoroutines();*/
//----
}
最佳答案
目前您正在播放视频:
var webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
webCamTexture.Play();
并用
停止webCameraTexture.Stop();
这正是您的代码告诉它要做的事情。 new WebCamTexture()
代码行预计在每次调用时分配内存。您应该在 Start()
函数中仅执行一次,然后您可以播放
和停止
相机没有内存分配。
public RawImage rawImage;
WebCamTexture webCamTexture;
void Start()
{
intCam(); //Do this once. Only once
}
void intCam()
{
webCamTexture = new WebCamTexture();
rawImage.material.mainTexture = webCamTexture;
}
public void StartMyCamera()
{
webCamTexture.Play();
}
public void StopMyCamera()
{
//to stop camera need only this line
webCamTexture.Stop();
}
关于c# - 如何在 Windows Phone 上统一减少 WebCameraTexture 使用的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39659137/
我在 unity3d 中为 Windows Phone 平台制作了一个带有两个简单 View 的演示应用程序。在第一个 View 中,我有一个按钮和一个文本,从检查器中我分配给按钮一个事件(单击时)以
我是一名优秀的程序员,十分优秀!