From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001 From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 18 八月 2017 18:12:17 +0800 Subject: [PATCH] H264 NALU解析 并在RTSPServer判断 --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java | 205 +++++++++++++++++++++------------------------------ 1 files changed, 85 insertions(+), 120 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java index 96c2fad..0cebae6 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java @@ -1,23 +1,25 @@ package cn.com.basic.face.service; -import android.graphics.Bitmap; -import android.util.Base64; - import org.xutils.http.RequestParams; import org.xutils.x; -import java.nio.ByteBuffer; -import java.util.ArrayList; +import java.io.File; +import java.io.FileWriter; import java.util.List; import cn.com.basic.face.base.BaseApplication; +import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.BaseCommonCallBack; import cn.com.basic.face.discern.common.CommonVariables; +import cn.com.basic.face.discern.common.SqliteSqlBean; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; -import cn.com.basic.face.fragment.RegisterFragment; -import cn.com.basic.face.fragment.SurveillanceFragment; +import cn.com.basic.face.discern.query.item.UnknownQueryItem; +import cn.com.basic.face.service.sqlite.SurveillanceDao; import cn.com.basic.face.util.AppApi; -import cn.com.basic.face.util.Constant; +import cn.com.basic.face.util.FileUtil; +import cn.com.basic.face.util.SqliteSqlUtil; +import cn.com.basic.face.util.SurveillanceQueryItemUtil; +import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil; public class SurveillanceMng { @@ -27,125 +29,88 @@ return instance; } - public void findSurveillanceBottomList(final boolean isVisit) { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.SURVEILLANCE_QUERY); - params.addBodyParameter(CommonVariables.Page.PAGE_NUM, "1"); - params.addBodyParameter(CommonVariables.Page.PAGE_SIZE, "10"); - x.http().post(params, new BaseCommonCallBack() { - public void success() { - List<SurveillanceQueryItem> list = getList(SurveillanceQueryItem.class); - if (isVisit) { - int i = 0; - for (SurveillanceQueryItem item : list) { - if (i % 5 == 0) { - item.setType(CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE); - } else { - item.setType(CommonVariables.Surveillance.VISIT_CHECK_IN_ITEM_TYPE); + public void addOfflineBitmap(final List<SurveillanceQueryItem> bitmapList, final byte[] rawData, final String cameraInOrOut) { + SurveillanceDao.getInstance().saveOfflineUnknownToLocal(bitmapList, rawData, cameraInOrOut); + UnknownSurveillanceQueryItemUtil.getInstance().addItems(bitmapList); + } + + public static class SurveillanceListThread extends Thread { + @Override + public void run() { + try { + while (true) { + MainActivity.getInstance().runOnUiThread(new Runnable() { + @Override + public void run() { + if (BaseApplication.getInstance().networkAvailable()) { + SurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow(); + } else { + UnknownSurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow(); + } } - i++; + }); + Thread.sleep(1000*60*5); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + int fileIndex = 1; + + public void addBitmap(final List<SurveillanceQueryItem> bitmapList, final byte[] byteArray, int len, final String cameraInOrOut, byte[] surveillancePhotoBytes) { + if (!BaseApplication.deviceAvailable) { + return; + } + try { + if (fileIndex > 30) { + fileIndex = 1; + } + fileIndex++; + RequestParams params = new RequestParams(); + File rawSurveillancePhotoFile = FileUtil.writeToFile("rawSurveillancePhotoFile_"+fileIndex, byteArray); + File surveillancePhotoFile = FileUtil.writeToFile("surveillancePhotoFile_"+fileIndex, surveillancePhotoBytes); + + params.addBodyParameter("InOrOutCamera", cameraInOrOut + ""); + params.addBodyParameter("deviceId", BaseApplication.getInstance().getAndroidDevice().getDeviceId()); + params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile); + params.addBodyParameter("surveillancePhoto", surveillancePhotoFile); + + File path = BaseApplication.getInstance().getFilesDir(); + if (!rawSurveillancePhotoFile.exists()) { + rawSurveillancePhotoFile.createNewFile(); + } + File f0 = new File(path, "f0"); + if (!f0.exists()) { + f0.createNewFile(); + } + + FileWriter fw0 = new FileWriter(f0); + fw0.write("test1"); + fw0.close(); + params.setUri(AppApi.BASE_URL + AppApi.SURVEILLANCE_UPLOAD); + params.addBodyParameter("f0", f0); + params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().post(params, new BaseCommonCallBack() { + @Override + public void success() { + try { + SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); + SurveillanceQueryItemUtil.getInstance().addItems(resultBean.getList(SurveillanceQueryItem.class), bitmapList, cameraInOrOut); + } catch(Exception e) { + e.printStackTrace(); } - - List<SurveillanceQueryItem> doubleList = new ArrayList<SurveillanceQueryItem>(); - fillBlank(list, doubleList); - - SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visit_list_view().show(doubleList, true); - } else { - SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().show(list, true); } - } - }); - } - - public List getRegisterList() { - return new ArrayList(); - } - - public List getCheckInList() { - return new ArrayList(); - } - - public void getList() { - List registerList = new ArrayList(); - List checkInList = new ArrayList(); - List blendInList = blendIn(registerList, checkInList); - SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visit_list_view().show(null, true); - } - - public List blendIn(List registerList, List checkInList) { - return null; - } - - public void addBitmap(final List<Bitmap> bitmapList, byte[] byteArray, int len) { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.SURVEILLANCE_UPLOAD); - params.addBodyParameter("base64Photo", Base64.encodeToString(byteArray, 0, len, Base64.DEFAULT)); - params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getDevice().getCompanyId()); - params.addBodyParameter("deviceId", BaseApplication.getInstance().getDevice().getDeviceId()); - params.addBodyParameter("enterOrExit", CommonVariables.EnterOrExit.ENTER+""); - x.http().post(params, new BaseCommonCallBack() { - public void success() { - SurveillanceQueryItem item = getBean(SurveillanceQueryItem.class); - if (item.getType() == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE - || item.getType() == CommonVariables.Surveillance.VISIT_CHECK_IN_ITEM_TYPE - ) { - List<SurveillanceQueryItem> doubleList = new ArrayList<SurveillanceQueryItem>(); - - List list = SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visit_list_view().getPrevList(); - list.add(0, item); - - fillBlank(list, doubleList); - - SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visit_list_view().show(doubleList, true); - } - - } - }); - if (bitmapList != null && bitmapList.size() > 0) { - //RegisterFragment.getInstance().get_fragment_register_choose_photo().setImageBitmap(bitmapList.get(0)); + }); + }catch(Exception e) { + e.printStackTrace(); } } - private void fillBlank(List<SurveillanceQueryItem> list, List<SurveillanceQueryItem> doubleList) { - List<SurveillanceQueryItem> registerList = new ArrayList<SurveillanceQueryItem>(); - List<SurveillanceQueryItem> checkInList = new ArrayList<SurveillanceQueryItem>(); - for (SurveillanceQueryItem item : list) { - if (item.getType() == Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE) { - registerList.add(item); - } - if (item.getType() == Constant.Surveillance.VISIT_CHECK_IN_ITEM_TYPE) { - checkInList.add(item); - } - } + public void removePhotoFileWhenStorageIsSlow() { - List<SurveillanceQueryItem> blenderList = new ArrayList<SurveillanceQueryItem>(); - - int i = 0, m = 0, n = 0; - for (i = 0; i < registerList.size() + checkInList.size(); i++) { - SurveillanceQueryItem item; - if (i % 2 == 0 && m < registerList.size()) { - item = registerList.get(m); - m++; - } else { - item = checkInList.get(n); - n++; - } - blenderList.add(item); - } - - for (SurveillanceQueryItem item : blenderList) { - if (doubleList.size() % 2 == 0 && item.getType() != Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE) { - doubleList.add(getBlankItem()); - } - if (doubleList.size() % 2 != 0 && item.getType() != Constant.Surveillance.VISIT_CHECK_IN_ITEM_TYPE) { - doubleList.add(getBlankItem()); - } - doubleList.add(item); - } - } - - private SurveillanceQueryItem getBlankItem() { - SurveillanceQueryItem blankItem = new SurveillanceQueryItem(); - blankItem.setType(Constant.Surveillance.VISIT_BLANK_ITEM_TYPE); - return blankItem; } } -- Gitblit v1.8.0