From db2c035c3406d310af30094ec2bbf55ab396bf83 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期二, 01 八月 2017 18:25:46 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/thread/StartCameraThread.java | 44 ++++++++++++++++++++++ VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java | 8 ++++ VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml | 1 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java | 36 +++++++----------- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java | 8 ++++ 5 files changed, 74 insertions(+), 23 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml b/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml index 11fab83..ddc924b 100644 --- a/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml +++ b/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml @@ -21,7 +21,6 @@ <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> - <application android:name="cn.com.basic.face.base.BaseApplication" android:allowBackup="true" diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java index e370a78..d2eb97a 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/DeviceFragment.java @@ -112,6 +112,14 @@ private DeviceQueryItem camera1; private DeviceQueryItem camera2; + public DeviceQueryItem getCamera2() { + return camera2; + } + + public DeviceQueryItem getCamera1() { + return camera1; + } + public void clearAll() { fragment_device_left_wifi_check_box.setChecked(false); fragment_device_left_lan_check_box.setChecked(false); diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java index 8f85a83..d4910ea 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java @@ -22,6 +22,7 @@ import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.service.DeviceMng; +import cn.com.basic.face.thread.StartCameraThread; import cn.com.basic.face.util.RtspFaceNative; import cn.com.basic.face.service.SurveillanceMng; @@ -67,6 +68,8 @@ @ViewInject(R.id.fragment_surveillance_bottom_linear_layout) private LinearLayout fragment_surveillance_bottom_linear_layout; + StartCameraThread startEnterCameraThread = null; + StartCameraThread startExitCameraThread = null; static boolean useNative = false; @@ -181,8 +184,6 @@ if (CommonVariables.FACE_SERVER) { fragment_supervisory_enter_camera_relative_layout.addView(MainActivity.getInstance().mPreview); fragment_supervisory_enter_camera_relative_layout.addView(MainActivity.getInstance().mDraw); - //fragment_supervisory_exit_camera_relative_layout.setVisibility(View.GONE); - //fragment_surveillance_bottom_linear_layout.setVisibility(View.GONE); } fragment_supervisory_enter_camera.getHolder().addCallback(new SurfaceHolder.Callback() { public void surfaceCreated(SurfaceHolder holder) { @@ -190,37 +191,28 @@ new SurveillancePhotoEmulateThread().start(); } if (useNative) { - RtspFaceNative.setSurface(Integer.parseInt(CommonVariables.Camera.IN), fragment_supervisory_enter_camera.getHolder().getSurface()); - RtspFaceNative.createPlayer(Integer.parseInt(CommonVariables.Camera.IN), DeviceMng.getInstance().getCamera1Address()); - RtspFaceNative.setFaceCallback(Integer.parseInt(CommonVariables.Camera.IN), "cn/com/basic/face/util/RtspFaceNative", "faceCallBack"); + synchronized (MainActivity.getInstance()) { + startEnterCameraThread = new StartCameraThread(Integer.parseInt(CommonVariables.Camera.IN), fragment_supervisory_enter_camera.getHolder().getSurface()); + startEnterCameraThread.start(); + } } } public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} - public void surfaceDestroyed(SurfaceHolder holder) { - System.out.println("surfaceDestroyed"); - } + public void surfaceDestroyed(SurfaceHolder holder) { } }); fragment_supervisory_exit_camera.getHolder().addCallback(new SurfaceHolder.Callback() { public void surfaceCreated(SurfaceHolder holder) { if (useNative) { - RtspFaceNative.setSurface(Integer.parseInt(CommonVariables.Camera.OUT), fragment_supervisory_exit_camera.getHolder().getSurface()); - RtspFaceNative.createPlayer(Integer.parseInt(CommonVariables.Camera.OUT), DeviceMng.getInstance().getCamera2Address()); - RtspFaceNative.setFaceCallback(Integer.parseInt(CommonVariables.Camera.OUT), "cn/com/basic/face/util/RtspFaceNative", "faceCallBack"); + synchronized (MainActivity.getInstance()) { + startEnterCameraThread = new StartCameraThread(Integer.parseInt(CommonVariables.Camera.OUT), fragment_supervisory_exit_camera.getHolder().getSurface()); + startEnterCameraThread.start(); + } } } - public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { - System.out.print("width="+width+",height="+height); -// if (useNative) { -// RtspFaceNative.setSurface(Integer.parseInt(CommonVariables.Camera.IN), fragment_supervisory_enter_camera.getHolder().getSurface()); -// RtspFaceNative.createPlayer(Integer.parseInt(CommonVariables.Camera.IN), DeviceMng.getInstance().getCamera1Address()); -// RtspFaceNative.setFaceCallback(Integer.parseInt(CommonVariables.Camera.IN), "cn/com/basic/face/util/RtspFaceNative", "faceCallBack"); -// } - } - public void surfaceDestroyed(SurfaceHolder holder) { - System.out.println("surfaceDestroyed"); - } + public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } + public void surfaceDestroyed(SurfaceHolder holder) { } }); new SurveillanceMng.SurveillanceListThread().start(); } diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java index 297acfa..ce58361 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java @@ -233,6 +233,10 @@ String password = "admin12345"; String ip = "192.168.1.70"; String port = "554"; + DeviceQueryItem camera2 = DeviceFragment.getInstance().getCamera2(); + if (camera2 != null) { + return "rtsp://admin:admin12345@"+camera2.getIp()+":554/h264/ch1/main/av_stream"; + } return "rtsp://admin:admin12345@192.168.1.202:554/h264/ch1/main/av_stream"; } @@ -241,6 +245,10 @@ String password = "a1234567"; String ip = "192.168.1.68"; String port = "554"; + DeviceQueryItem camera1 = DeviceFragment.getInstance().getCamera1(); + if (camera1 != null) { + return "rtsp://admin:admin12345@"+camera1.getIp()+":554/h264/ch1/main/av_stream"; + } return "rtsp://admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream"; } diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/thread/StartCameraThread.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/thread/StartCameraThread.java new file mode 100644 index 0000000..abcf158 --- /dev/null +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/thread/StartCameraThread.java @@ -0,0 +1,44 @@ +package cn.com.basic.face.thread; + +import android.view.Surface; + +import cn.com.basic.face.discern.common.CommonVariables; +import cn.com.basic.face.discern.query.item.DeviceQueryItem; +import cn.com.basic.face.fragment.DeviceFragment; +import cn.com.basic.face.service.DeviceMng; +import cn.com.basic.face.util.RtspFaceNative; + +public class StartCameraThread extends Thread { + + private int inOrOutCamera; + private Surface surface; + + public StartCameraThread(int inOrOutCamera, Surface surface) { + this.inOrOutCamera = inOrOutCamera; + this.surface = surface; + } + + @Override + public void run() { + while (true) { + try { + DeviceQueryItem camera1 = DeviceFragment.getInstance().getCamera1(); + DeviceQueryItem camera2 = DeviceFragment.getInstance().getCamera2(); + if(camera1 != null && camera2 != null) { + RtspFaceNative.setSurface(inOrOutCamera, surface); + if(inOrOutCamera == Integer.parseInt(CommonVariables.Camera.IN)) { + RtspFaceNative.createPlayer(inOrOutCamera, DeviceMng.getInstance().getCamera1Address()); + } else { + RtspFaceNative.createPlayer(inOrOutCamera, DeviceMng.getInstance().getCamera2Address()); + } + RtspFaceNative.setFaceCallback(inOrOutCamera, "cn/com/basic/face/util/RtspFaceNative", "faceCallBack"); + break; + } + Thread.sleep(10*1000); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} -- Gitblit v1.8.0