和微拍对接改造

camera2
Matthew 8 months ago
parent bad9753a48
commit b10d9cda67

@ -4,13 +4,13 @@ android {
compileSdkVersion 26
defaultConfig {
applicationId "net.ossrs.yasea.demo"
minSdkVersion 18
applicationId "com.xypower.mplive"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "2.6"
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "mips"
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
//
@ -37,5 +37,6 @@ dependencies {
implementation fileTree(dir: 'libx264.libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation files('libs/devapi.aar')
implementation project(path: ':library')
}

Binary file not shown.

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.ossrs.yasea.demo">
package="com.xypower.mplive">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
@ -17,7 +17,7 @@
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name="MainActivity"
android:name="net.ossrs.yasea.mplive.MainActivity"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

@ -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) {

@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="net.ossrs.yasea.demo.MainActivity">
tools:context="net.ossrs.yasea.mplive.MainActivity">
<net.ossrs.yasea.SrsCameraView
android:layout_width="match_parent"

@ -1,6 +1,6 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context="net.ossrs.yasea.demo.MainActivity">
xmlns:tools="http://schemas.android.com/tools" tools:context="net.ossrs.yasea.mplive.MainActivity">
<item android:id="@+id/action_settings" android:title="action_settings"
android:orderInCategory="100" app:showAsAction="never" />

@ -1,3 +1,3 @@
<resources>
<string name="app_name">Yasea</string>
<string name="app_name">欣影视频流</string>
</resources>

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-6.5-all.zip

@ -4,14 +4,14 @@ android {
compileSdkVersion 26
defaultConfig {
minSdkVersion 18
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "2.6"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "mips"
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
buildTypes {

@ -10,6 +10,7 @@ import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.opengl.Matrix;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Surface;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
@ -31,6 +32,7 @@ import javax.microedition.khronos.opengles.GL10;
*/
public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Renderer {
private final static String TAG = "SrsCameraView";
private GPUImageFilter magicFilter;
private SurfaceTexture surfaceTexture;
private int mOESTextureId = OpenGLUtils.NO_TEXTURE;

@ -1,5 +1,6 @@
package net.ossrs.yasea;
import android.annotation.SuppressLint;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.media.AudioFormat;

Loading…
Cancel
Save