鲜有人用手机外接usb摄像头。修车师傅使用迷你型usb摄像头当作内窥镜修车。医生查看患者内脏时用的内窥镜。钥匙掉马桶里,用个带钩子防水的usb摄像头找(开玩笑),等等。Android Device External Multiple USB Web Cameras(English Version)
前段时间因为痴迷于做一件事,特地研究android设备外接多个usb摄像头;空闲时间从查阅资料,支持条件,然后对硬件(摄像头,智能机)的采购,最后基于github上的开源代码实现外接多个usb摄像头。
本文要实现的是使用小米平板外接多个usb摄像头,在一个android应用中同时显示所有usb摄像头的图像。
总开销: ¥1353.9
在调试过程中重新安装apk时未对usb申请的资源进行释放,需要对已申请的资源进行释放,
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="50dp" android:id="@+id/release" android:text="release all cameras"/> </LinearLayout>
protected void onCreate(final Bundle savedInstanceState) { // ...... releaseBtn = (Button)findViewById(R.id.release); releaseBtn.setOnClickListener(mReleaseOnClickListener); // ...... } private final OnClickListener mReleaseOnClickListener = new OnClickListener() { @Override public void onClick(final View view) { if (DEBUG) {Log.v(TAG, "camera numbers-->" + mCameras.size());} for (final CameraRec rec: mCameras.values()) { if (DEBUG) {Log.v(TAG, "release camera-->" + rec.mCamera.toString()+);} rec.release(); } } };
adb shell cd sys/bus/usb/drivers ls
如果显示有uvcvideo
文件夹说明支持uvc协议
[11019*stream.c:1589: uvc_stream_start_bandwidth]:fail
小米平板2最多同时显示2个摄像头,后续可考虑在电脑上玩50个上的usb摄像头。
如果你对本文有感兴趣,可邮件我frankshaohua@gmail.com