ビデオを表示するために、JNI からビットマップを表示するために Surface を使用しています。これは私のコードです。
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するとどうなるか