修改速度取值,更新行车记录仪代码。
DEMO必须依附于预览获取YUV数据,不符合需求,这里先接入直播,后续需要按照源码抽离直接通过USB获取YUV的服务

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2022-02-24 17:47:33 +08:00
parent 9df5dd5203
commit 353e8492b9
56 changed files with 2268 additions and 438 deletions

View File

@@ -0,0 +1,39 @@
package com.mogo.usbcamera;
import com.serenegiant.usb.USBMonitor;
/**
* @author donghongyu
* USB摄像头方案获取权限、获取YUV数据
*/
public class USBCameraHelper {
private static USBCameraHelper mCameraHelper;
/**
* USB Manager
*/
private USBMonitor mUSBMonitor;
private USBCameraHelper() {
}
public static USBCameraHelper getInstance() {
if (mCameraHelper == null) {
mCameraHelper = new USBCameraHelper();
}
return mCameraHelper;
}
public void registerUSB() {
if (mUSBMonitor != null) {
mUSBMonitor.register();
}
}
public void unregisterUSB() {
if (mUSBMonitor != null) {
mUSBMonitor.unregister();
}
}
}

View File

@@ -74,6 +74,9 @@ public class UVCCameraHelper {
void onConnectDev(UsbDevice device, boolean isConnected);
void onDisConnectDev(UsbDevice device);
void onCancelDev(UsbDevice device);
}
public void initUSBMonitor(Activity activity, CameraViewInterface cameraView, final OnMyDevConnectListener listener) {
@@ -106,18 +109,15 @@ public class UVCCameraHelper {
public void onConnect(final UsbDevice device, USBMonitor.UsbControlBlock ctrlBlock, boolean createNew) {
mCtrlBlock = ctrlBlock;
openCamera(ctrlBlock);
new Thread(new Runnable() {
@Override
public void run() {
// wait for camera created
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// start previewing
startPreview(mCamView);
new Thread(() -> {
// wait for camera created
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// start previewing
startPreview(mCamView);
}).start();
if (listener != null) {
listener.onConnectDev(device, true);
@@ -135,6 +135,9 @@ public class UVCCameraHelper {
@Override
public void onCancel(UsbDevice device) {
if (listener != null) {
listener.onCancelDev(device);
}
}
});
@@ -249,7 +252,6 @@ public class UVCCameraHelper {
public void capturePicture(String savePath, AbstractUVCCameraHandler.OnCaptureListener listener) {
if (mCameraHandler != null && mCameraHandler.isOpened()) {
File file = new File(savePath);
if (!Objects.requireNonNull(file.getParentFile()).exists()) {
file.getParentFile().mkdirs();