gpt4 book ai didi

android - 打开新 fragment 时取消绑定(bind)/关闭所有cameraX组件

转载 作者:行者123 更新时间:2023-12-05 00:03:08 24 4
gpt4 key购买 nike

private Executor executor = Executors.newSingleThreadExecutor();
captureImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

imageCapture.takePicture(executor, new ImageCapture.OnImageCapturedCallback() {
@SuppressLint("UnsafeExperimentalUsageError")
@Override
public void onCaptureSuccess(@NonNull ImageProxy image) {

getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
cameraProvider.unbind(preview);
}
});

FragmentCroppImage fragment2 = new FragmentCroppImage();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.frameLHaupt, fragment2);
fragmentTransaction.commit();

}

@Override
public void onError(@NonNull ImageCaptureException exception) {
exception.printStackTrace();
}
});
}
});
我上面有一个简单的代码。当我拍照时,我会打开新 fragment 。
没问题,但问题是当我返回 cameraX fragment (popbackstack) 时收到以下错误: Attempting to bind too many ImageCapture or VideoCapture instances .
经过研究,我阅读了以下答案: answer我需要取消绑定(bind)我所做的 cameraX 组件,但我研究了同样的错误。
所以现在我被困住了。可能是什么原因?似乎我需要在图像捕获之前取消绑定(bind)元素?

最佳答案

我解决了这个问题:
我只解绑了预览。解除绑定(bind)每个组件解决了这个问题:

getActivity().runOnUiThread(new Runnable() {
@Override
public void run() { cameraProvider.unbindAll(); }
});

关于android - 打开新 fragment 时取消绑定(bind)/关闭所有cameraX组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67256772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com