Android实现录像功能

Android实现录像功能

    • 一、目标
    • 二、实现方案
      • 1. 调用第三方应用
      • 2. 使用Camera API实现录像
    • 三、最终代码
    • 四、过程回顾
    • 五、接下来
    • 六、Finally

一、目标

实现录像功能,为神马笔记实现视频笔记功能做准备。

二、实现方案

1. 调用第三方应用

Android系统通常都已经内置了支持录像的APP,直接调用第三方应用可以减少开发工作量。

  • Intent参数说明
Intent 参数 说明
Action MediaStore.ACTION_VIDEO_CAPTURE 录像的Action
Bundle MediaStore.EXTRA_OUTPUT Uri,保存的位置
MediaStore.EXTRA_VIDEO_QUALITY int,{0, 1},低质量和高质量
MediaStore.EXTRA_DURATION_LIMIT int,录像时间限制
MediaStore.EXTRA_SIZE_LIMIT long,录像大小限制

2. 使用Camera API实现录像

第三方应用实现方式已经足够满足神马笔记当前的需求。

Camera API留待未来需要时再来了解。

三、最终代码

调用第三方应用实现录像,非常之简单。

  • 参数
参数 说明
MediaStore.EXTRA_VIDEO_QUALITY 1 自己的笔记,当然要高清
MediaStore.EXTRA_DURATION_LIMIT 24小时 不清楚默认值为多少,设定一个足够的时间。
MediaStore.EXTRA_SIZE_LIMIT 10G 不清楚默认值为多少,设定一个足够的大小。
Intent intent = new Intent();
{
  intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
  intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

  intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
  intent.addCategory(Intent.CATEGORY_DEFAULT);

  intent.putExtra(MediaStore.EXTRA_OUTPUT, targetUri);
  intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
  intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 24 * 60 * 60); // int value
  intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 10 * 1024 * 1024 * 1024L); // long value
}

try {

  f.startActivityForResult(intent, c);

  return true;
} catch (Exception e) {
  e.printStackTrace();
}

return false;

四、过程回顾

实现不难,关键在于保证所有机型都能适配。

测试了荣耀畅玩7、红米6Pro、坚果手机2,均能正常工作。

五、接下来

实现选择本地视频功能。

六、Finally

佛告须菩提。
诸菩萨摩诃萨。应如是降伏其心。
所有一切众生之类。
若卵生。若胎生。
若湿生。若化生。
若有色。若无色。
若有想。若无想。
若非有想。非无想。
我皆令入无余涅盘而灭度之。

你可能感兴趣的:(神马笔记)