From a70e10e49e43eaf82fc467b7a81bac7c3dfd5912 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期二, 28 三月 2017 15:35:58 +0800 Subject: [PATCH] --- VisitFace/DemoForBsk/app/src/main/java/com/bsk/zhangbo/demoforbsk/ui/fragment/OneFragment.java | 175 ++++++++++++++++++++++++++++------------------------------ 1 files changed, 84 insertions(+), 91 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/java/com/bsk/zhangbo/demoforbsk/ui/fragment/OneFragment.java b/VisitFace/DemoForBsk/app/src/main/java/com/bsk/zhangbo/demoforbsk/ui/fragment/OneFragment.java index 4f3c0d4..8879093 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/com/bsk/zhangbo/demoforbsk/ui/fragment/OneFragment.java +++ b/VisitFace/DemoForBsk/app/src/main/java/com/bsk/zhangbo/demoforbsk/ui/fragment/OneFragment.java @@ -1,10 +1,8 @@ package com.bsk.zhangbo.demoforbsk.ui.fragment; -import android.content.res.AssetManager; import android.graphics.Rect; import android.graphics.SurfaceTexture; import android.os.Bundle; -import android.support.v4.view.ViewPager; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -15,22 +13,20 @@ import android.view.View; import android.widget.RadioButton; import android.widget.RadioGroup; -import android.widget.Toast; import com.bsk.zhangbo.demoforbsk.R; -import com.bsk.zhangbo.demoforbsk.adapter.MyFragmentPagerAdapter; import com.bsk.zhangbo.demoforbsk.adapter.OneBottomRecylerViewAdapter; import com.bsk.zhangbo.demoforbsk.base.BaseFragment; -import com.bsk.zhangbo.demoforbsk.ui.activity.TestARGB8888Activity; +import com.bsk.zhangbo.demoforbsk.util.RtspFaceNative; import com.bsk.zhangbo.demoforbsk.util.WindowsUtil; import com.bsk.zhangbo.demoforbsk.widget.MyGLSurfaceView; import com.camnter.easyrecyclerview.widget.EasyRecyclerView; import com.orhanobut.logger.Logger; import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; import java.util.List; + +import cn.com.basic.face.discern.query.item.FacePhotoItem; /** @@ -46,56 +42,34 @@ private List mList; private EasyRecyclerView mRecyclerViewRegister, mRecyclerViewUser; - //鎾斁 String mSourceString = "clips/testfile.mp4"; SurfaceView mSurfaceView1; - MyGLSurfaceView mGLView1; + SurfaceView mSurfaceView2; SurfaceHolder mSurfaceHolder1; VideoSink mSelectedVideoSink; - VideoSink mNativeCodecPlayerVideoSink; + SurfaceHolderVideoSink mSurfaceHolder1VideoSink; + VideoSink mNativeCodecPlayerVideoSink; GLViewVideoSink mGLView1VideoSink; boolean mCreated = false; boolean mIsPlaying = false; -// SurfaceHolderVideoSink mSurfaceHolder1VideoSink; -// VideoSink mSelectedVideoSink; -// VideoSink mNativeCodecPlayerVideoSink; -// SurfaceView mSurfaceView1; -// SurfaceHolder mSurfaceHolder1; -// boolean mCreated = false; -// boolean mIsPlaying = false; -// String mSourceString = "clips/testfile.mp4"; - - /** - * Native methods, implemented in jni folder - */ -// public static native void createEngine(); -// -// public static native boolean createStreamingMediaPlayer(AssetManager assetMgr, String filename); -// -// public static native void setPlayingStreamingMediaPlayer(boolean isPlaying); -// -// public static native void shutdown(); -// -// public static native void setSurface(Surface surface); -// -// public static native void rewindStreamingMediaPlayer(); - /** Load jni .so on initialization */ static { - System.loadLibrary("native-codec-jni"); + System.loadLibrary("rtspface");//xiuxi } - public static OneFragment newInstance() { - return new OneFragment(); + private static OneFragment instance = new OneFragment(); + + public static OneFragment getInstance() { + return instance; } @Override @@ -120,8 +94,12 @@ mAdapter = new OneBottomRecylerViewAdapter(getActivity()); - mGLView1 = (MyGLSurfaceView) view.findViewById(R.id.surfaceview2); + mSurfaceView2 = (SurfaceView) view.findViewById(R.id.surfaceview2); mSurfaceView1 = (SurfaceView) view.findViewById(R.id.surfaceview1); + RtspFaceNative.init(); + RtspFaceNative.setSurface(1, mSurfaceView1.getHolder().getSurface()); + RtspFaceNative.setSurface(2, mSurfaceView2.getHolder().getSurface()); + mSurfaceHolder1 = mSurfaceView1.getHolder(); mSurfaceHolder1.addCallback(new SurfaceHolder.Callback() { @@ -144,16 +122,18 @@ }); //surfaceview -// if (mSurfaceHolder1VideoSink == null) { -// mSurfaceHolder1VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder1); -// } -// mSelectedVideoSink = mSurfaceHolder1VideoSink; + if (mSurfaceHolder1VideoSink == null) { + mSurfaceHolder1VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder1); + } + mSelectedVideoSink = mSurfaceHolder1VideoSink; //openGL - mGLView1.onResume(); + if(mSurfaceView2 instanceof MyGLSurfaceView) { + ((MyGLSurfaceView)mSurfaceView2).onResume(); + } if (mGLView1VideoSink == null) { - mGLView1VideoSink = new GLViewVideoSink(mGLView1); + mGLView1VideoSink = new GLViewVideoSink(mSurfaceView2); } mSelectedVideoSink = mGLView1VideoSink; @@ -170,16 +150,22 @@ return; } mSelectedVideoSink.useAsSinkForNative(); + mSurfaceHolder1VideoSink.useAsSinkForNative(); + //mSelectedVideoSink.useAsSinkForNative(); + //mSurfaceHolder1VideoSink.useAsSinkForNative(); mNativeCodecPlayerVideoSink = mSelectedVideoSink; } if (mSourceString != null) { - mCreated = createStreamingMediaPlayer(getResources().getAssets(), - mSourceString); + //mCreated = createStreamingMediaPlayer(getResources().getAssets(), + // mSourceString); + mCreated = RtspFaceNative.createPlayer(1, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/sub/av_stream"); + mCreated = RtspFaceNative.createPlayer(2, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/sub/av_stream"); + ////mCreated = createPlayer(2, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/main/av_stream"); } } if (mCreated) { mIsPlaying = !mIsPlaying; - setPlayingStreamingMediaPlayer(mIsPlaying); + //setPlayingStreamingMediaPlayer(mIsPlaying); } @@ -188,12 +174,7 @@ } } }); - thread.start(); - } - - @Override - protected void initToolbar(Bundle savedInstanceState) { - + thread.start();//xiuxi } @Override @@ -223,12 +204,24 @@ protected void initData() { // switchSurface(); mList = new ArrayList(); - for (int i = 0; i < 25; i++) { - mList.add(""); + for (int i = 0; i < 125; i++) { + FacePhotoItem item = new FacePhotoItem(); + //item.setType(); + item.setName("寮犱笁"+i); + if (i % 3 == 0) { + item.setStatus("鏉ヨ鐧昏"); + } else { + item.setStatus("绛剧"); + } + if (i % 5 == 0) { + item.setWarning(""); + } else { + item.setWarning("璀﹀憡"); + } + mList.add(item); } mAdapter.setList(mList); mRecyclerViewRegister.setAdapter(mAdapter); - } private class SpaceItemDecoration extends RecyclerView.ItemDecoration { @@ -247,20 +240,21 @@ } } - - void switchSurface() { if (mCreated && mNativeCodecPlayerVideoSink != mSelectedVideoSink) { // shutdown and recreate on other surface Log.i("@@@", "shutting down player"); - shutdown(); + RtspFaceNative.shutdown(1); mCreated = false; mSelectedVideoSink.useAsSinkForNative(); mNativeCodecPlayerVideoSink = mSelectedVideoSink; if (mSourceString != null) { Log.i("@@@", "recreating player"); - mCreated = createStreamingMediaPlayer(getResources().getAssets(), mSourceString); + //mCreated = createStreamingMediaPlayer(getResources().getAssets(), mSourceString); mIsPlaying = false; + mCreated = RtspFaceNative.createPlayer(1, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/main/av_stream"); + mCreated = RtspFaceNative.createPlayer(2, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/main/av_stream"); + ////mCreated = createPlayer(2, "rtsp://admin:admin12345@192.168.1.70:554/h264/ch1/main/av_stream"); } } } @@ -271,15 +265,19 @@ @Override public void onPause() { mIsPlaying = false; - mGLView1.onPause(); - setPlayingStreamingMediaPlayer(false); + if(mSurfaceView2 instanceof MyGLSurfaceView) { + ((MyGLSurfaceView)mSurfaceView2).onPause(); + } + //setPlayingStreamingMediaPlayer(false);//xiuxi super.onPause(); } @Override public void onResume() { super.onResume(); - mGLView1.onResume(); + if(mSurfaceView2 instanceof MyGLSurfaceView) { + ((MyGLSurfaceView)mSurfaceView2).onResume(); + } } /** @@ -287,30 +285,11 @@ */ @Override public void onDestroy() { - shutdown(); + RtspFaceNative.shutdown(1); mCreated = false; super.onDestroy(); } - /** - * Native methods, implemented in jni folder - */ -// public static native void createEngine(); - - public static native boolean createStreamingMediaPlayer(AssetManager assetMgr, String filename); - - public static native void setPlayingStreamingMediaPlayer(boolean isPlaying); - - public static native void shutdown(); - - public static native void setSurface(Surface surface); - - public static native void rewindStreamingMediaPlayer(); - - /** Load jni .so on initialization */ - static { - System.loadLibrary("native-codec-jni"); - } // VideoSink abstracts out the difference between Surface and SurfaceTexture // aka SurfaceHolder and GLSurfaceView @@ -339,7 +318,13 @@ void useAsSinkForNative() { Surface s = mSurfaceHolder.getSurface(); Log.i("@@@", "setting surface " + s); - setSurface(s); + RtspFaceNative.setSurface(1, s); + + + /*SurfaceTexture st = mSurfaceHolder.getSurfaceTexture(); + Surface s = new Surface(st); + RtspFaceNative.setSurface(2, s); + s.release();*/ } } @@ -347,22 +332,30 @@ static class GLViewVideoSink extends VideoSink { - private final MyGLSurfaceView mMyGLSurfaceView; + private final SurfaceView SurfaceView; + private final SurfaceHolder mSurfaceHolder; - GLViewVideoSink(MyGLSurfaceView myGLSurfaceView) { - mMyGLSurfaceView = myGLSurfaceView; + GLViewVideoSink(SurfaceView myGLSurfaceView) { + SurfaceView = myGLSurfaceView; + mSurfaceHolder = SurfaceView.getHolder(); } @Override void setFixedSize(int width, int height) { + mSurfaceHolder.setFixedSize(width, height); } @Override void useAsSinkForNative() { - SurfaceTexture st = mMyGLSurfaceView.getSurfaceTexture(); - Surface s = new Surface(st); - setSurface(s); - s.release(); + if(SurfaceView instanceof MyGLSurfaceView) { + SurfaceTexture st = ((MyGLSurfaceView)SurfaceView).getSurfaceTexture(); + Surface s = new Surface(st); + RtspFaceNative.setSurface(2, s); + s.release(); + } else { + RtspFaceNative.setSurface(2, SurfaceView.getHolder().getSurface()); + } + } } -- Gitblit v1.8.0