Tôi đang kết nối webcam với trình mô phỏng của mình bằng cách đặt camera trước thành "webcam0" trong Trình quản lý AVD. Khi tôi khởi động ứng dụng máy ảnh của trình giả lập, tôi gặp lỗi
CameraService::connect X (pid 702) rejected (invalid cameraId 0).
Đây là phần có liên quan của mã nguồn Android:
sp<ICamera> CameraService::connect(
const sp<ICameraClient>& cameraClient, int cameraId) {
int callingPid = getCallingPid();
[...]
if (cameraId < 0 || cameraId >= mNumberOfCameras) {
LOGE("CameraService::connect X (pid %d) rejected (invalid cameraId %d).",
callingPid, cameraId);
return NULL;
}
[...]
}
Webcam đã được chỉ định đúng ID là 0 vì chỉ có 1 camera. Tuy nhiên, mNumberOfCamerascó lẽ vẫn là 0. Điều này có nghĩa là máy ảnh đang được đăng ký bởi trình giả lập, nhưng nó không bận tâm đến việc cập nhật số lượng máy ảnh được kết nối.
Làm cách nào để kết nối webcam để trình giả lập nhận dạng đúng?
Chỉnh sửa: lệnh emulator -webcam-list -avd <name of your AVD>trong \android-sdks\toolscho kết quả:
List of web cameras connected to the computer:
Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`
Khi tôi khởi chạy webcam từ trình quản lý AVD của Eclipse hoặc sử dụng emulator -camera-front webcam0 -avd <name of your AVD>, tôi nhận được cửa sổ sau:

Chỉnh sửa 2: Đây dường như là một lỗi trong trình giả lập. Câu trả lời gợi ý cho bạn biết phải làm gì để thiết lập máy ảnh, nhưng không giải quyết được vấn đề cho tôi. Cuối cùng tôi đã giải quyết nó bằng cách sử dụng một máy tính xách tay có tích hợp webcam. Có lẽ một webcam USB khác cũng có thể hoạt động.




