首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当用户按下Android自定义相机上的后退按钮时,如何停止录像?

当用户按下Android自定义相机上的后退按钮时,如何停止录像?
EN

Stack Overflow用户
提问于 2019-03-15 04:18:21
回答 1查看 264关注 0票数 0

注:这类似于复制,但没有其他人解决我的问题。

@Hitesh Tarbundiya's 回答 in Step 2解决了我的问题

我正在使用natario1 CameraView库为安卓录制视频。

我正在使用Fragment

我已经把代码写到

  1. 停止录像
  2. 保存录制的视频
  3. 用新创建的视频文件更新媒体库

但我现在不知道的是,当用户在销毁碎片之前按下手机上的后退按钮或主页按钮时,应该在哪里调用这些方法。

我尝试过从onPause()onStop()onDestroyView()onDestroy()调用这些方法,但没有成功。

请给我一些建议,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 04:23:08

试试这个,可以解决你的问题。

代码语言:javascript
运行
复制
@Override
public void onBackPressed() {
  if (mMediaRecorder != null) {
   //Wtire your code for stop video, on back press
    mMediaRecorder.stop();
    mMediaRecorder.reset();
   }else{
    super.onBackPressed();
   }         
}

如果您处于零碎状态,那么请执行此步骤。

步骤1:创建一个接口文件

代码语言:javascript
运行
复制
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:在您的活动类中实现以下操作

代码语言:javascript
运行
复制
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:现在在您的片段类中实现接口,如下所示,

代码语言:javascript
运行
复制
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;
    }
 }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55175487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档