从我的 Android 设备中移除 USB 摄像头不会刷新列表

Removing a usb camera from my Android device does not refresh the list

我有这个函数,每 5 秒调用一次:

     @NonNull
private ArrayList<LmiVideoCapturerDeviceInfo> getNumberOfCameras() {
    ArrayList<LmiVideoCapturerDeviceInfo> newDevices= new ArrayList<>();
    int numberOfCameras = Camera.getNumberOfCameras();
    Log.i("Refresh devices"," lookForDevicesChangesRunnable refresh devices size is!!!!!!!!!!!!!!!!!!!!!!!!!!!: " + numberOfCameras);
    for (int i = 0; i < numberOfCameras; i++) {
        Camera.CameraInfo info = new Camera.CameraInfo();
        Camera.getCameraInfo(i, info);
        Log.i("Refresh devices", "camera ids are: " + info.toString());
        String facing = "BACK";
        if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
            facing = "FRONT";
        }
        newDevices.add(new LmiVideoCapturerDeviceInfo("Camera " + i, Integer.toString(i), "Camera" + i, facing));
    }
    return newDevices;
}

现在我比如一开始有0个摄像头,我在usb插头上加了一个摄像头,它会更新,这会return 1个,它会刷新我的列表。

但是如果我连接了 1 个摄像头,然后将其移除,此功能仍然 return 1,很长一段时间,即使摄像头不再存在,如果我尝试打开它,在应用程序中没有任何反应,只是获取最后一帧(从我删除它时开始)。为什么不尽快更新我的列表? PS:我用的电视盒是Android 4.4.2,所以我不能用Camera2 API,所以我用CameraAPI

Android 中没有对网络摄像头的内置支持,因此您的设备制造商一定已经添加了它。

不幸的是,由于没有内置支持,很容易出现无法正常工作的场景。您可能会遇到其中一个。您可以尝试将问题报告给制造商,但能否尽快解决问题还很难说。