提交 795e7356 编写于 作者: xuexiangjys's avatar xuexiangjys 😊

修复在录制过程中,点击home键返回出现黑屏

上级 04df0634
...@@ -74,9 +74,9 @@ dependencies { ...@@ -74,9 +74,9 @@ dependencies {
//butterknife的sdk //butterknife的sdk
implementation 'com.jakewharton:butterknife:8.8.1' implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
// implementation project(':xvideo-lib') implementation project(':xvideo-lib')
implementation 'com.github.xuexiangjys:XVideo:1.0.1' // implementation 'com.github.xuexiangjys:XVideo:1.0.1'
implementation 'com.github.xuexiangjys:NiceVieoPlayer:3.0.1' implementation 'com.github.xuexiangjys:NiceVieoPlayer:3.0.1'
implementation deps.glide implementation deps.glide
} }
...@@ -260,12 +260,19 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM ...@@ -260,12 +260,19 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM
case Camera.CameraInfo.CAMERA_FACING_FRONT: case Camera.CameraInfo.CAMERA_FACING_FRONT:
case Camera.CameraInfo.CAMERA_FACING_BACK: case Camera.CameraInfo.CAMERA_FACING_BACK:
mCameraId = cameraFacingFront; mCameraId = cameraFacingFront;
stopPreview(); resetPreview();
startPreview();
break; break;
} }
} }
/**
* 重置预览显示
*/
private void resetPreview() {
stopPreview();
startPreview();
}
/** /**
* 切换前置/后置摄像头 * 切换前置/后置摄像头
*/ */
...@@ -415,8 +422,9 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM ...@@ -415,8 +422,9 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM
*/ */
public void prepare() { public void prepare() {
mPrepared = true; mPrepared = true;
if (mSurfaceCreated) if (mSurfaceCreated) {
startPreview(); startPreview();
}
} }
/** /**
...@@ -712,17 +720,25 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM ...@@ -712,17 +720,25 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM
public void surfaceCreated(SurfaceHolder holder) { public void surfaceCreated(SurfaceHolder holder) {
this.mSurfaceHolder = holder; this.mSurfaceHolder = holder;
this.mSurfaceCreated = true; this.mSurfaceCreated = true;
if (mPrepared && !mStartPreview) if (mPrepared) {
startPreview(); if (!mStartPreview) {
startPreview();
} else {
resetPreview();
}
}
} }
@Override @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
this.mSurfaceHolder = holder; mSurfaceHolder = holder;
} }
@Override @Override
public void surfaceDestroyed(SurfaceHolder holder) { public void surfaceDestroyed(SurfaceHolder holder) {
if (mRecording) {
setStopDate();
}
mSurfaceHolder = null; mSurfaceHolder = null;
mSurfaceCreated = false; mSurfaceCreated = false;
} }
...@@ -738,26 +754,6 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM ...@@ -738,26 +754,6 @@ public abstract class MediaRecorderBase implements Callback, PreviewCallback, IM
camera.addCallbackBuffer(data); camera.addCallbackBuffer(data);
} }
/**
* 测试PreviewFrame回调次数,时间1分钟
*/
public void testPreviewFrameCallCount() {
new CountDownTimer(1 * 60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
Log.e("[Vitamio Recorder]", "testFrameRate..." + mPreviewFrameCallCount);
mPreviewFrameCallCount = 0;
}
@Override
public void onFinish() {
}
}.start();
}
/** /**
* 接收音频数据 * 接收音频数据
*/ */
......
...@@ -349,10 +349,13 @@ public class MediaRecorderFragment extends Fragment implements ...@@ -349,10 +349,13 @@ public class MediaRecorderFragment extends Fragment implements
super.onResume(); super.onResume();
if (mMediaRecorder == null) { if (mMediaRecorder == null) {
initMediaRecorder(); initMediaRecorder();
} else { } else { //回到页面
mRecordLed.setChecked(false); mRecordLed.setChecked(false);
mMediaRecorder.prepare(); mMediaRecorder.prepare();
mProgressView.setData(mMediaObject); mProgressView.setData(mMediaObject);
if (mMediaRecorder instanceof MediaRecorderNative) {
((MediaRecorderNative) mMediaRecorder).activityResume();
}
} }
} }
...@@ -378,7 +381,6 @@ public class MediaRecorderFragment extends Fragment implements ...@@ -378,7 +381,6 @@ public class MediaRecorderFragment extends Fragment implements
// TODO 开始录制的图标 // TODO 开始录制的图标
mRecordController.animate().scaleX(0.8f).scaleY(0.8f).setDuration(500).start(); mRecordController.animate().scaleX(0.8f).scaleY(0.8f).setDuration(500).start();
if (mHandler != null) { if (mHandler != null) {
mHandler.removeMessages(HANDLE_INVALIDATE_PROGRESS); mHandler.removeMessages(HANDLE_INVALIDATE_PROGRESS);
mHandler.sendEmptyMessage(HANDLE_INVALIDATE_PROGRESS); mHandler.sendEmptyMessage(HANDLE_INVALIDATE_PROGRESS);
......
...@@ -140,4 +140,8 @@ public class MediaRecorderNative extends MediaRecorderBase implements MediaRecor ...@@ -140,4 +140,8 @@ public class MediaRecorderNative extends MediaRecorderBase implements MediaRecor
public void activityStop() { public void activityStop() {
FFmpegBridge.unRegisterFFmpegStateListener(this); FFmpegBridge.unRegisterFFmpegStateListener(this);
} }
public void activityResume() {
FFmpegBridge.registerFFmpegStateListener(this);
}
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册