驾驶培训App流程图2(相机预览)

项目中把摄像头预览抽象了出来,可能很多模块都会用到这个功能

如:教学模块、教练学员登退签、定时拍照、随机拍照都需要这个功能。
设置模块也需要预览摄像头的效果,检查是否可用等等

模块A

		mserviceConnection = new AdditionServiceConnection();
		Intent it = new Intent();
		it.setAction(Constant.WISDON_MODULAR_DATA_ACTION_SERVICE);
		context.bindService(it, mserviceConnection, Context.BIND_AUTO_CREATE);
	public static final String WISDON_MODULAR_DATA_ACTION_SERVICE = "com.hst.cz.cam.aidl.CamModularService";

模块A、绑定一个服务,指向com.hst.cz.cam.aidl.CamModularService,我们称呼为相机模块,

public class AidlCamModularService extends Service {

ICamModularPush.Stub mBinder = new ICamModularPush.Stub() {
		@Override
		public byte[] getM(int arg0, int arg1) throws RemoteException {
			return null;
		}

		@Override
		public String push(String jsonStr) throws RemoteException {
			int id = addJsonStr(jsonStr);
			Intent intent = new Intent(context, BackService.class);
			intent.putExtra("aidl", 0);
			intent.putExtra("json", sendJsonArray[id - 1].toString());
			context.startService(intent);
			return null;
		}

	};

}

相机模块启动服务

public class BackService extends Service {

...
case 1: {
					if (isExistUsbCamera()) {
						cameraArray[i - 1] = Camera.open(0);
						return true;
					} else {
						TTSControl.log("找不到摄像头", context);
					}
				}
					break;
				case 2: {
					if (isExistCVBSCamera()) {
						cameraArray[i - 1] = Camera.open(7);
						return true;
					}
				}
...
/*通过判断驱动文件是否存在,来判断设备*/
public boolean isExistUsbCamera() {
		String path = "/dev/video0";
		return new File(path).exists();
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值