AndroidUSBCamera
Android USB Camera
Install / Use
/learn @suethan/AndroidUSBCameraREADME
AndroidUSBCamera
android usb camera on non-rooted Android devices.<br/> 在Android设备上使用外接usb摄像头的项目,无需root权限。
<h2>use step:</h2> <h3>1.init view and camera</h3>mCameraView.setAspectRatio(PREVIEW_WIDTH / (float)PREVIEW_HEIGHT);
camera = new USBCamera();
camera.init(this);
camera.setCameraType(CameraType.C3D_SBS);
<h3>2. start preview</h3>
if(!camera.isCameraOpened()){
boolean ret = camera.open(0);
if(!ret){
Toast.makeText(USBCameraActivity.this, "NO_USB_DEVICE", Toast.LENGTH_SHORT).show();
}else {
camera.setPreviewSize(PREVIEW_WIDTH,PREVIEW_HEIGHT);
camera.setPreviewTexture(mCameraView.getSurfaceTexture());
camera.startPreview();
}
}
<h3>3. captureStill</h3>
if(camera.isCameraOpened()){
Toast.makeText(USBCameraActivity.this, "Captured", Toast.LENGTH_SHORT).show();
camera.captureStill();
}
<h3>4. recording </h3>
if(camera.isCameraOpened() && !camera.isRecording()){
Toast.makeText(USBCameraActivity.this, "startRecording", Toast.LENGTH_SHORT).show();
camera.startRecording();
}
if(camera.isCameraOpened() && camera.isRecording()){
Toast.makeText(USBCameraActivity.this, "stopRecording", Toast.LENGTH_SHORT).show();
camera.stopRecording();
}
<h3>5. stop</h3>
if(camera.isCameraOpened()){
camera.close();
}
<h3>6. destory</h3>
camera.destroy();
<h2>Refer</h2>
http://bigflake.com/mediacodec/
<h2>注意:</h2>
PREVIEW_WIDTH、PREVIEW_HEIGHT的大小和外接摄像头,手机硬件编码器有关。
不合适的值,可能会发生错误。
常见值:
标清:480P 640*480
高清:720P 1280*720
超清:1080P 1920*1080
如果是双摄:
标清:480P 1280*480
高清:720P 2560*720
超清:1080P 3840*1080
并调用,camera.setCameraType(CameraType.C3D_SBS)
<h2>Todo</h2>
1.同时录制视频和声音。
需要常见的宽高比例,如果是双摄像头,目前简易做法,camera.setCameraType(CameraType.C3D_SBS),将全宽图片压缩为半宽。
2.编写Camera应用,测试插件。
3.优化压缩方式。
4.支持多种预览方式。
5.支持两种拍摄和录制方式
原始数据。
预览画面显示的数据。
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
