|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package net.ossrs.yasea.demo;
|
|
|
|
|
package com.xypower.mplive;
|
|
|
|
|
|
|
|
|
|
import android.Manifest;
|
|
|
|
|
import android.content.Intent;
|
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
|
import android.content.pm.ActivityInfo;
|
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
@ -9,9 +10,11 @@ import android.hardware.Camera;
|
|
|
|
|
import android.os.Build;
|
|
|
|
|
import android.os.Bundle;
|
|
|
|
|
import android.os.Environment;
|
|
|
|
|
import android.os.Handler;
|
|
|
|
|
import android.support.v4.app.ActivityCompat;
|
|
|
|
|
import android.support.v4.content.ContextCompat;
|
|
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
|
|
import android.text.TextUtils;
|
|
|
|
|
import android.util.Log;
|
|
|
|
|
import android.view.Menu;
|
|
|
|
|
import android.view.MenuItem;
|
|
|
|
@ -21,6 +24,7 @@ import android.widget.Button;
|
|
|
|
|
import android.widget.EditText;
|
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
import com.dev.devapi.api.SysApi;
|
|
|
|
|
import com.github.faucamp.simplertmp.RtmpHandler;
|
|
|
|
|
import com.seu.magicfilter.utils.MagicFilterType;
|
|
|
|
|
|
|
|
|
@ -46,21 +50,28 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
|
|
|
|
|
private Button btnPause;
|
|
|
|
|
|
|
|
|
|
private SharedPreferences sp;
|
|
|
|
|
private String rtmpUrl = "rtmp://ossrs.net/" + getRandomAlphaString(3) + '/' + getRandomAlphaDigitString(5);
|
|
|
|
|
private String rtmpUrl = "rtmp://192.168.50.250/live/0";
|
|
|
|
|
private String recPath = Environment.getExternalStorageDirectory().getPath() + "/test.mp4";
|
|
|
|
|
|
|
|
|
|
private SrsPublisher mPublisher;
|
|
|
|
|
private SrsCameraView mCameraView;
|
|
|
|
|
|
|
|
|
|
private int mWidth = 640;
|
|
|
|
|
private int mHeight = 480;
|
|
|
|
|
private int mWidth = 1920;
|
|
|
|
|
private int mHeight = 1080;
|
|
|
|
|
private boolean isPermissionGranted = false;
|
|
|
|
|
|
|
|
|
|
private Handler mHandler;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
|
|
|
|
mHandler = new Handler();
|
|
|
|
|
|
|
|
|
|
SysApi.setCam3V3Enable(true);
|
|
|
|
|
|
|
|
|
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
|
|
|
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
|
|
|
|
setContentView(R.layout.activity_main);
|
|
|
|
|
|
|
|
|
|
// response screen rotation event
|
|
|
|
@ -116,9 +127,26 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
|
|
|
|
|
btnSwitchEncoder = (Button) findViewById(R.id.swEnc);
|
|
|
|
|
btnPause = (Button) findViewById(R.id.pause);
|
|
|
|
|
btnPause.setEnabled(false);
|
|
|
|
|
|
|
|
|
|
Intent intent = getIntent();
|
|
|
|
|
|
|
|
|
|
mCameraView = (SrsCameraView) findViewById(R.id.glsurfaceview_camera);
|
|
|
|
|
int rotation = intent.getIntExtra("rotation", -1);
|
|
|
|
|
if (rotation != -1) {
|
|
|
|
|
mCameraView.setPreviewOrientation(rotation);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mPublisher = new SrsPublisher(mCameraView);
|
|
|
|
|
|
|
|
|
|
if (intent.hasExtra("cameraId")) {
|
|
|
|
|
mPublisher.switchCameraFace(intent.getIntExtra("cameraId", 0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String url = intent.getStringExtra("url");
|
|
|
|
|
if (!TextUtils.isEmpty(url)) {
|
|
|
|
|
rtmpUrl = url;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mPublisher.setEncodeHandler(new SrsEncodeHandler(this));
|
|
|
|
|
mPublisher.setRtmpHandler(new RtmpHandler(this));
|
|
|
|
|
mPublisher.setRecordHandler(new SrsRecordHandler(this));
|
|
|
|
@ -127,6 +155,7 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
|
|
|
|
|
mPublisher.setVideoHDMode();
|
|
|
|
|
mPublisher.startCamera();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mCameraView.setCameraCallbacksHandler(new SrsCameraView.CameraCallbacksHandler(){
|
|
|
|
|
@Override
|
|
|
|
|
public void onCameraParameters(Camera.Parameters params) {
|
|
|
|
@ -136,6 +165,27 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
boolean autoStart = intent.getBooleanExtra("autoStart", false);
|
|
|
|
|
if (autoStart) {
|
|
|
|
|
mHandler.postDelayed(new Runnable() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
btnPublish.performClick();
|
|
|
|
|
}
|
|
|
|
|
}, 500);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
boolean autoClose = intent.getBooleanExtra("autoClose", false);
|
|
|
|
|
if (autoClose) {
|
|
|
|
|
mHandler.postDelayed(new Runnable() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
finish();
|
|
|
|
|
System.exit(0);
|
|
|
|
|
}
|
|
|
|
|
}, 1000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
btnPublish.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v) {
|