Android实现录像功能

Android实现录像功能

一、目标

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

二、实现方案

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 不清楚默认值为多少,设定一个足够的大小。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

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