@Hitesh Tarbundiya的answer在第2步中解决了我的问题
我正在使用natario1 CameraView library for android录制视频。
我正在与Fragment
一起工作。
我已经向
编写了代码停止录像
保存录制的视频
使用新创建的视频文件更新媒体库
但是我现在不知道的是,当用户在片段被破坏之前按下手机上的后退按钮或主页按钮时,在哪里调用这些方法。
我尝试从onPause()
onStop()
onDestroyView()
和onDestroy()
调用方法,但是没有成功。
感谢您的建议,谢谢。
答案 0 :(得分:2)
尝试一下,可能会解决您的问题。
@Override
public void onBackPressed() {
if (mMediaRecorder != null) {
//Wtire your code for stop video, on back press
mMediaRecorder.stop();
mMediaRecorder.reset();
}else{
super.onBackPressed();
}
}
如果您处于碎片状态,请执行此步骤。
第1步:创建一个接口文件
public interface IOnBackPressed {
/**
* If you return true the back press will not be taken into account, otherwise the activity will act naturally
* @return true if your processing has priority if not false
*/
boolean onBackPressed();
}
第2步:在Activity类中实现此目标
public class MyActivity extends Activity {
@Override public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.main_container);
if (!(fragment instanceof IOnBackPressed) || !((IOnBackPressed) fragment).onBackPressed()) {
super.onBackPressed();
}
}
}
第3步:现在在片段类隐含接口中这样写
public class MyFragment extends Fragment implements IOnBackPressed{
@Override
public boolean onBackPressed() {
if (myCondition) {
if (mMediaRecorder != null) {
//Wtire your code for stop video, on back press
mMediaRecorder.stop();
mMediaRecorder.reset();
}
return true;
} else {
return false;
}
}
}