X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;ds=sidebyside;f=app%2Fsrc%2Fmain%2Fjava%2Fai%2Fsuanzi%2Frtmpclient%2FMainActivity.java;h=abef9c8fb756addc7893ade8f7786bebf794be1b;hb=6d410bf5e67288660c675d0aa76891eb8367e7cc;hp=6b29b835e486fb7fcb2fa56aff42cf661228c475;hpb=bceaa4c3f8bbfddb7f4cab257b759d0d0136284c;p=rtmpclient.git diff --git a/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java b/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java index 6b29b83..abef9c8 100644 --- a/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java +++ b/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java @@ -1,6 +1,7 @@ package ai.suanzi.rtmpclient; import android.graphics.ImageFormat; +import android.graphics.SurfaceTexture; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; @@ -15,6 +16,7 @@ import android.content.pm.PackageManager; import android.os.AsyncTask; import java.util.List; import java.io.IOException; +import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -64,17 +66,51 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal } }); - this.mCamera = getCameraInstance(); + /*this.mCamera = getCameraInstance(); if(checkCameraHardware(this)) Log.e(TAG, "has cameras: " + Camera.getNumberOfCameras()); - +*/ final SurfaceView surfaceView = findViewById(R.id.surfaceView); mHolder = surfaceView.getHolder(); mHolder.addCallback(this); // - mCamera.setPreviewCallback(this); + //mCamera.setPreviewCallback(this); + + /*try{ + mCamera.setPreviewTexture(st); + }catch (IOException e){ + e.printStackTrace(); + }*/ + + final Button btn2 = findViewById(R.id.button2); + btn2.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View view){ + Log.e(TAG, "onclick2"); + ffmpeg.play(mHolder.getSurface(),"/storage/sdcard0/output.flv"); + + } + + }); + + Log.e(TAG, "onclick2"); + //ffmpeg.play(mHolder.getSurface(),"/storage/emulated/0/Movies/output.flv"); + //ffmpeg.play(mHolder.getSurface(),"/data/local/tmp/big_buck_bunny_720p_10mb.mp4"); + + + btn2.post(new Runnable(){ + @Override + public void run() { + btn2.performClick(); + } + }); + + } + //SurfaceTexture st = new SurfaceTexture(0); + + @Override protected void onPause(){ super.onPause(); @@ -89,6 +125,30 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal Log.e(TAG, "OnResume"); } + @Override + protected void onStop() { + super.onStop(); + Log.e(TAG,"onStop"); + } + + @Override + protected void onStart(){ + super.onStart(); + Log.e(TAG,"onStart"); + } + + @Override + protected void onDestroy(){ + super.onDestroy(); + Log.e(TAG,"onDestroy"); + } + + @Override + protected void onRestart(){ + super.onStart(); + Log.e(TAG,"onRestart"); + } + // class StreamTask AsyncTask private class StreamTask extends AsyncTask{ private byte[] data; @@ -112,12 +172,12 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal @Override public void surfaceCreated(final SurfaceHolder holder){ Log.e(TAG,"SurfacedCreated"); - try { + /*try { mCamera.setPreviewDisplay(holder); - //mCamera.startPreview(); + mCamera.startPreview(); } catch (IOException e) { Log.d(TAG, "Error setting camera preview: " + e.getMessage()); - } + }*/ } @Override @@ -128,6 +188,37 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal //parameters.setPreviewSize(640,480); //parameters.setPictureSize(640,480); //mCamera.setParameters(parameters); + + //try{ + //Thread.sleep(10000); + /*Log.e(TAG, "xxxxxxxxxxxxxx"); + mExecutor.execute(new Runnable() { + @Override + public void run() { + mCamera.startPreview(); + final Button btn = findViewById(R.id.button); + Camera.Parameters params = mCamera.getParameters(); + ffmpeg.init(params.getPictureSize().width, params.getPictureSize().height); + } + });*/ + + //btn.performClick(); + //} catch (InterruptedException e){ + // e.printStackTrace(); + //} + + + + //Camera.Parameters params = mCamera.getParameters(); + //ffmpeg.init(params.getPictureSize().width, params.getPictureSize().height); + /*Thread t = new Thread(new Runnable() { + @Override + public void run() { + ffmpeg.play(mHolder.getSurface(),"/storage/emulated/0/Movies/output.flv"); + + } + });*/ + } @Override @@ -156,7 +247,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal mStreamTask.execute((Void)null);*/ - long endTime = System.currentTimeMillis(); + /*long endTime = System.currentTimeMillis(); mExecutor.execute(new Runnable() { @Override public void run() { @@ -167,7 +258,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal }); Log.e(TAG, "采集第:" + (++count) + "帧,距上一帧间隔时间:" + (endTime - previewTime) + " " + Thread.currentThread().getName()); - previewTime = endTime; + previewTime = endTime;*/ } @@ -183,7 +274,6 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal c = Camera.open(0); Camera.Parameters params = c.getParameters(); Log.e(TAG, "Camera parameters: " + params.getPreviewSize().width + "x" + params.getPreviewSize().height); - // NV21 : 17, JPEG 256 Log.e(TAG, "Preview format (17 is NV21): " + params.getPreviewFormat() + ". Picture format(256 is JPEG): " + params.getPictureFormat()); List fps = params.getSupportedPreviewFpsRange(); for(int[] i : fps){ @@ -193,15 +283,15 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal Camera.Parameters parameters = c.getParameters(); - //List sizes = parameters.getSupportedPreviewSizes(); + List sizes = parameters.getSupportedPictureSizes(); for (Camera.Size cc : sizes){ Log.e(TAG, "=== width: " + cc.width + ". height:" + cc.height); } Camera.Size cs = sizes.get(3); - params.setPreviewSize(cs.width, cs.height); + //params.setPreviewSize(cs.width, cs.height); params.setPictureSize(cs.width, cs.height); - params.setPictureFormat(ImageFormat.NV21); + //params.setPictureFormat(ImageFormat.NV21); c.setParameters(params); } catch (Exception e){