VideoPlayerActivity接入基类activity

pull/107/head
xufulong 6 years ago
parent 6f5e074c95
commit 2945132deb
  1. 6
      app/src/main/AndroidManifest.xml
  2. 101
      app/src/main/java/com/frank/ffmpeg/activity/VideoPlayerActivity.java

@ -36,8 +36,7 @@
<!-- 视频解码播放 --> <!-- 视频解码播放 -->
<activity <activity
android:name=".activity.VideoPlayerActivity" android:name=".activity.VideoPlayerActivity"
android:screenOrientation="landscape" android:screenOrientation="landscape" />
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
<!-- 音视频解码播放 --> <!-- 音视频解码播放 -->
<activity <activity
android:name=".activity.MediaPlayerActivity" android:name=".activity.MediaPlayerActivity"
@ -48,8 +47,7 @@
<!-- 实时推流直播 --> <!-- 实时推流直播 -->
<activity <activity
android:name=".activity.LiveActivity" android:name=".activity.LiveActivity"
android:screenOrientation="landscape" android:screenOrientation="landscape" />
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
<!-- 滤镜特效 --> <!-- 滤镜特效 -->
<activity <activity
android:name=".activity.FilterActivity" android:name=".activity.FilterActivity"

@ -1,71 +1,49 @@
package com.frank.ffmpeg.activity; package com.frank.ffmpeg.activity;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.util.Log; import android.util.Log;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
import android.view.SurfaceView; import android.view.SurfaceView;
import android.view.View; import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.frank.ffmpeg.R; import com.frank.ffmpeg.R;
import com.frank.ffmpeg.VideoPlayer; import com.frank.ffmpeg.VideoPlayer;
import com.frank.ffmpeg.util.FileUtil; import com.frank.ffmpeg.util.FileUtil;
import java.io.File;
/** /**
* 使用ffmpeg播放视频 * 使用ffmpeg播放视频
* Created by frank on 2018/2/1. * Created by frank on 2018/2/1.
*/ */
public class VideoPlayerActivity extends AppCompatActivity implements SurfaceHolder.Callback { public class VideoPlayerActivity extends BaseActivity implements SurfaceHolder.Callback {
private static final String TAG = VideoPlayerActivity.class.getSimpleName(); private static final String TAG = VideoPlayerActivity.class.getSimpleName();
SurfaceHolder surfaceHolder; SurfaceHolder surfaceHolder;
private final static String PATH = Environment.getExternalStorageDirectory().getPath() + File.separator;
private String filePath = PATH + "hello.mp4";
private VideoPlayer videoPlayer; private VideoPlayer videoPlayer;
//播放倍率 //播放倍率
private float playRate = 1; private float playRate = 1;
private boolean surfaceCreated;
@Override
int getLayoutId() {
return R.layout.activity_video_player;
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player);
initView(); initView();
initPlayer(); initPlayer();
showToast(getString(R.string.please_click_select));
} }
private void initView(){ private void initView() {
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surface_view); SurfaceView surfaceView = getView(R.id.surface_view);
surfaceHolder = surfaceView.getHolder(); surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this); surfaceHolder.addCallback(this);
Button btn_slow = (Button) findViewById(R.id.btn_slow); initViewsWithClick(R.id.btn_slow);
btn_slow.setOnClickListener(new View.OnClickListener() { initViewsWithClick(R.id.btn_fast);
@Override
public void onClick(View view) {
if(playRate <= 32){
playRate *= 2;
}
Log.i(TAG, "playRate=" + playRate);
videoPlayer.setPlayRate(playRate);
}
});
Button btn_fast = (Button) findViewById(R.id.btn_fast);
btn_fast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(playRate >= 1/32){
playRate *= 0.5;
}
Log.i(TAG, "playRate=" + playRate);
videoPlayer.setPlayRate(playRate);
}
});
} }
private void initPlayer(){ private void initPlayer(){
@ -74,10 +52,24 @@ public class VideoPlayerActivity extends AppCompatActivity implements SurfaceHol
@Override @Override
public void surfaceCreated(SurfaceHolder holder) { public void surfaceCreated(SurfaceHolder holder) {
surfaceCreated = true;
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
private void startPlay(final String filePath) {
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
if (!FileUtil.checkFileExist(filePath)){ if (!FileUtil.checkFileExist(filePath)) {
return; return;
} }
@ -87,20 +79,39 @@ public class VideoPlayerActivity extends AppCompatActivity implements SurfaceHol
} }
@Override @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { protected void onDestroy() {
super.onDestroy();
if(videoPlayer != null){
videoPlayer = null;
}
} }
@Override @Override
public void surfaceDestroyed(SurfaceHolder holder) { void onViewClick(View view) {
switch (view.getId()) {
case R.id.btn_fast:
if(playRate >= 1/32){
playRate *= 0.5;
}
Log.i(TAG, "fast playRate=" + playRate);
videoPlayer.setPlayRate(playRate);
break;
case R.id.btn_slow:
if(playRate <= 32){
playRate *= 2;
}
Log.i(TAG, "slow playRate=" + playRate);
videoPlayer.setPlayRate(playRate);
break;
default:
break;
}
} }
@Override @Override
protected void onDestroy() { void onSelectedFile(String filePath) {
super.onDestroy(); if (surfaceCreated) {
if(videoPlayer != null){ startPlay(filePath);
videoPlayer = null;
} }
} }

Loading…
Cancel
Save