駕駛培訓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();
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章