0

我正在使用 Surface 从 JNI 显示位图,以显示视频,这是我的代码:

       SurfaceHolder holder = surfaceView.getHolder();
       while(true) {
            if(getBitmap() == null) {
                continue;
            }
            Canvas canvas = holder.lockCanvas();
            canvas.drawBitmap(getBitmap(), matrix, null);
            if(viewInterface == null) {
                break;
            }
            holder.unlockCanvasAndPost(canvas);
            setBitmap(null);
        }

我去计算每个方法花费的时间,我发现方法

//longest time consuming 71ms
holder.lockCanvas(); 

//longest time consuming 50ms
canvas.drawBitmap(getBitmap(), matrix, null);

//longest time consuming 111ms
holder.unlockCanvasAndPost(canvas);

不知道问题出在哪里,这么久了下次drawBitmap怎么办

4

0 回答 0