相关疑难解决方法(0)

在一次使用多个YuvImage时使用compresstojpeg时内存不足

我正在构建一个缓冲N个相机帧的应用程序,当用户点击一个按钮时,它会使用应用效果的所有已保存帧保存照片.

我正在保存照片并在AsyncTask上处理帧.当我执行它时,我从屏幕上删除所有内容,只留下一个TextView来显示保存照片的进度.

目前AsyncTask doInBackground看起来像这样:

protected Void doInBackground(Integer... params) 
{
    int w = mBuffer.get(0).getWidth();
    int h = mBuffer.get(0).getHeight();
    int lineHeight = h / mBuffer.size();
    int currentHeight = 0;

    Log.d("output", "saving photo "+w+", "+h);

    for (int i = 0; i < mBuffer.size(); i++)
    {
        YuvImage image = mBuffer.get(i);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        if (!image.compressToJpeg(new Rect(0, currentHeight, w, lineHeight), 50, out))
        {
            Log.d("output", "problem converting yuv to jpg");
            break;
        }

        currentHeight += lineHeight;

        Log.d("output", …
Run Code Online (Sandbox Code Playgroud)

android image-processing yuv out-of-memory

5
推荐指数
1
解决办法
3628
查看次数

我可以获得我的程序剩余多少内存?

我的程序有许多需要大量内存的工作,当我需要停止它时我无法确切知道,但是如果内存很少,我可以强制它停止使用资源.那么我可以获得我的程序可以使用多少剩余(字节)内存?

P/s:没有办法释放进程内存.他们需要尽可能多的内存,这就是它的工作方式(而且,收藏者没有垃圾,因为旧的仍然需要).

java memory android

4
推荐指数
1
解决办法
724
查看次数

标签 统计

android ×2

image-processing ×1

java ×1

memory ×1

out-of-memory ×1

yuv ×1