LiveActivity接入基类Activity

pull/107/head
xufulong 6 years ago
parent 2945132deb
commit 545fcb6182
  1. 4
      app/src/main/java/com/frank/ffmpeg/activity/BaseActivity.java
  2. 52
      app/src/main/java/com/frank/ffmpeg/activity/LiveActivity.java

@ -45,6 +45,10 @@ public abstract class BaseActivity extends AppCompatActivity implements View.OnC
} }
private void requestPermission() { private void requestPermission() {
requestPermission(permissions);
}
protected void requestPermission(String[] permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permissions, REQUEST_CODE); requestPermissions(permissions, REQUEST_CODE);
} }

@ -2,15 +2,11 @@ package com.frank.ffmpeg.activity;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.hardware.Camera; import android.hardware.Camera;
import android.media.AudioFormat; import android.media.AudioFormat;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
@ -30,10 +26,9 @@ import com.frank.live.param.VideoParam;
* Created by frank on 2018/1/28. * Created by frank on 2018/1/28.
*/ */
public class LiveActivity extends AppCompatActivity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener, LiveStateChangeListener { public class LiveActivity extends BaseActivity implements CompoundButton.OnCheckedChangeListener, LiveStateChangeListener {
private final static String TAG = LiveActivity.class.getSimpleName(); private final static String TAG = LiveActivity.class.getSimpleName();
private final static int CODE_CAMERA_RECORD = 0x0001;
private final static String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}; private final static String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO};
private final static String LIVE_URL = "rtmp://192.168.1.102/live/stream"; private final static String LIVE_URL = "rtmp://192.168.1.102/live/stream";
private final static int MSG_ERROR = 100; private final static int MSG_ERROR = 100;
@ -53,28 +48,33 @@ public class LiveActivity extends AppCompatActivity implements View.OnClickListe
} }
}; };
@Override
int getLayoutId() {
return R.layout.activity_live;
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live);
hideActionBar();
initView(); initView();
requirePermission(); requestPermission(permissions);
initPusher(); initPusher();
} }
private void initView(){ private void initView(){
findViewById(R.id.btn_swap).setOnClickListener(this); initViewsWithClick(R.id.btn_swap);
((ToggleButton)findViewById(R.id.btn_live)).setOnCheckedChangeListener(this); ((ToggleButton)findViewById(R.id.btn_live)).setOnCheckedChangeListener(this);
((ToggleButton)findViewById(R.id.btn_mute)).setOnCheckedChangeListener(this); ((ToggleButton)findViewById(R.id.btn_mute)).setOnCheckedChangeListener(this);
SurfaceView surface_camera = (SurfaceView) findViewById(R.id.surface_camera); SurfaceView surface_camera = getView(R.id.surface_camera);
surfaceHolder = surface_camera.getHolder(); surfaceHolder = surface_camera.getHolder();
} }
private void initPusher() { private void initPusher() {
int width = 640;//分辨率设置很重要 int width = 640;//分辨率设置
int height = 480; int height = 480;
int videoBitRate = 400;//kb/s jason-->480kb int videoBitRate = 400;//kb/s
int videoFrameRate = 25;//fps int videoFrameRate = 25;//fps
VideoParam videoParam = new VideoParam(width, height, VideoParam videoParam = new VideoParam(width, height,
Camera.CameraInfo.CAMERA_FACING_BACK, videoBitRate, videoFrameRate); Camera.CameraInfo.CAMERA_FACING_BACK, videoBitRate, videoFrameRate);
@ -86,13 +86,6 @@ public class LiveActivity extends AppCompatActivity implements View.OnClickListe
livePusher = new LivePusher(surfaceHolder, videoParam, audioParam); livePusher = new LivePusher(surfaceHolder, videoParam, audioParam);
} }
@Override
public void onClick(View v) {
if(v.getId() == R.id.btn_swap){//切换摄像头
livePusher.switchCamera();
}
}
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (buttonView.getId()){ switch (buttonView.getId()){
@ -118,24 +111,21 @@ public class LiveActivity extends AppCompatActivity implements View.OnClickListe
mHandler.obtainMessage(MSG_ERROR, msg).sendToTarget(); mHandler.obtainMessage(MSG_ERROR, msg).sendToTarget();
} }
@TargetApi(Build.VERSION_CODES.M) @Override
private void requirePermission(){ protected void onDestroy() {
requestPermissions(permissions, CODE_CAMERA_RECORD); super.onDestroy();
livePusher.release();
} }
@Override @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { void onViewClick(View view) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(view.getId() == R.id.btn_swap){//切换摄像头
if(permissions.length > 0 && grantResults.length == permissions.length){ livePusher.switchCamera();
for(int i=0; i<permissions.length; i++){
Log.i(TAG, permissions[i] + ":grantResult=" + grantResults[i]);
}
} }
} }
@Override @Override
protected void onDestroy() { void onSelectedFile(String filePath) {
super.onDestroy();
livePusher.release();
} }
} }

Loading…
Cancel
Save