接入人脸检测报错

This commit is contained in:
xsl
2025-09-16 23:48:35 +08:00
parent a8eebf519f
commit 2b4066fa32
@@ -29,13 +29,17 @@ import androidx.core.content.ContextCompat;
import com.google.androidgamesdk.GameActivity;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.mediapipe.examples.facelandmarker.FaceLandmarkerHelper;
import com.google.mediapipe.tasks.vision.core.RunningMode;
import org.jetbrains.annotations.NotNull;
import java.nio.ByteBuffer;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MainActivity extends GameActivity {
public class MainActivity extends GameActivity implements FaceLandmarkerHelper.LandmarkerListener{
private ProcessCameraProvider cameraProvider;
private void initCamera(){
backgroundExecutor = Executors.newSingleThreadExecutor();
@@ -46,6 +50,18 @@ public class MainActivity extends GameActivity {
}
}
private void detectFace(ImageProxy imageProxy) {
backgroundExecutor.execute(new Runnable() {
@Override
public void run() {
faceLandmarkerHelper.detectLiveStream(
imageProxy,true
);
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -63,6 +79,25 @@ public class MainActivity extends GameActivity {
initCamera();
backgroundExecutor.execute(new Runnable() {
@Override
public void run() {
faceLandmarkerHelper = new FaceLandmarkerHelper(
0.5f,
0.5f,
0.5f,
1,
0,
RunningMode.LIVE_STREAM,
MainActivity.this,
MainActivity.this
);
}
});
Log.i("MainActivity", "onCreate: ");
}
@@ -80,6 +115,7 @@ public class MainActivity extends GameActivity {
private static final int REQUEST_CAMERA_PERMISSION = 1001;
ImageAnalysis imageAnalyzer;
ExecutorService backgroundExecutor;
FaceLandmarkerHelper faceLandmarkerHelper;
private void startCamera() {
ListenableFuture<ProcessCameraProvider> cameraProviderFuture =
@@ -106,6 +142,7 @@ public class MainActivity extends GameActivity {
public void analyze(@NonNull ImageProxy image) {
try {
Log.d("Camera", "Received image: " + image.getWidth() + "x" + image.getHeight());
detectFace(image);
processImageForVulkan(image);
} finally {
image.close(); // 确保在这里关闭
@@ -177,4 +214,14 @@ public class MainActivity extends GameActivity {
}
private native void sendArgumentsToPlatform(String[] args);
@Override
public void onError(@NotNull String error, int errorCode) {
Log.e(TAG, "onError: Face Error");
}
@Override
public void onResults(FaceLandmarkerHelper.@NotNull ResultBundle resultBundle) {
Log.e(TAG, "On Face Result");
}
}