我一直在研究分析寻找特定对象的帧的移动应用程序。该处理是沉重,我不断收到在分析帧时从主线程切换到多线程
05-08 17:44:24.909: I/Choreographer(31606): Skipped 114 frames! The application may be doing too much work on its main thread.
所以我切换图像处理线程,现在它的速度要快得多,但我不能够认识任何对象。数据(不同的框架)没有更新,我不知道为什么。以下是我在伪正在做(SurfaceHolder.Callback,Camera.PreviewCallback和camera.addCallbackBuffer(数据)来实现)
public void onPreviewFrame(byte[] data, Camera camera)
{
Imageprocessor np = new ImageProcessor(data);
np.start()
results = np.getResults();
}
从到目前为止,我已经做了我知道开始时分析整个调试框架,但是。数据没有更新,它保持堆叠在第一帧。这不会发生,如果我这样做在主线程这样,
public void onPreviewFrame(byte[] data, Camera camera)
{
Imageprocessor np = new ImageProcessor();
np.process(data)
results = np.getResults();
}
这样的作品,但它迫使我跳过很多帧。答案可能很简单,但我无法在网上找到它。
原谅我,如果我张贴一个很小白的问题提前
感谢
我不能告诉它,因为它的伪代码,但你是否应用图像处理之前将缓冲区复制到自己的内存? –
我有同样的isuue和它一周我无法解决这一个..你有任何帮助? –