从我的 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 中没有对网络摄像头的内置支持,因此您的设备制造商一定已经添加了它。
不幸的是,由于没有内置支持,很容易出现无法正常工作的场景。您可能会遇到其中一个。您可以尝试将问题报告给制造商,但能否尽快解决问题还很难说。
我有这个函数,每 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 中没有对网络摄像头的内置支持,因此您的设备制造商一定已经添加了它。
不幸的是,由于没有内置支持,很容易出现无法正常工作的场景。您可能会遇到其中一个。您可以尝试将问题报告给制造商,但能否尽快解决问题还很难说。