鸿蒙无权限实现图片选择拍照和录视频
在鸿蒙开发中,系统提供了 PhotoViewPicker 选择图片,cameraPicker 拍照和录视频,此方式能够达到无需向用户申请权限就能选图片、拍照和录视频。除了用户操作的选图、拍照和录视频,其它时间 APP 无权获取相册图片,无权调用相机,对于用户来说,使用相册和相机都是很明确的时机,安全性非常高。以下来看看具体的使用方式。
使用 PhotoViewPicker 选择图片
我们 new 一个 PhotoViewPicker 并调用 select 方法,就可以打开系统图片选择器进行图片选择了,支持的参数非常多,基本满足了日常的使用场景。
MIMEType:我们可以通过 MIMEType 来设置是选择图片或者选择视频,甚至是同时选择图片和视频。
isEditSupported:通过 isEditSupported 参数来设置选择好图片后,是否进入图片编辑模式。
isOriginalSupported:通过 isOriginalSupported 参数来设置选择的图片是否为源图,该参数设置为 true,选择页面有一个按钮,可以控制是否使用源图。
isPhotoTakingSupported:在图片选择页面,可以通过 isPhotoTakingSupported 参数设置第一个位置是否为拍照选项,设置后点击第一个位置,可以打开相机拍摄一张图片。
isPreviewForSingleSelectionSupported:通过 isPreviewForSingleSelectionSupported 参数可以在图片选择后,进入大图预览页面,使我们能够查看图片的更多细节。
isSearchSupported:当相册的图片太多时,我们可以通过 isSearchSupported 参数显示搜索框,在搜索框中输入图片相关内容,以便快速查找相关图片
maxSelectNumber:通过 maxSelectNumber 来设置选择的数量,默认选择 50 张图片,最多选择 500 张。
preselectedUris:当为多选模式时,通过 preselectedUris 参数可以预选中一些图片,以便避免每次打开图片选择器,都是重新选择,从而导致之前选择的图片丢失了。一个完整的示例如下
使用 cameraPicker 拍照和录视频
我们可以通过 cameraPicker 的 select 方法来进行拍照或录视频,也可以同时设置拍照和录视频,用户在拍照页面自行选择是拍照还是录视频。具体使用参数如下
mediaTypes:是一个数组,设置为拍照片,还是录视频,也可以同时设置
cameraPosition:设置是使用前置摄像头还是后置摄像头进行拍照或录视频
saveUri:设置拍照或录制的视频保存的位置,通常设置成我们的沙箱目录
videoDuration:当模式为录视频时,此参数为设置视频的最大时长。一个完整的示例如下
用户在系统拍照录视频页面,可以自己选择很多参数,例如是否打开闪光灯,图片的宽高比,视频的帧率,是否撕开参考线等等,可选择的参数很多,灵活度也很高,基本可以满足日常的使用场景,最主要的是不用向用户申请权限,还是非常方便的。
版权声明: 本文为 InfoQ 作者【龙儿筝】的原创文章。
原文链接:【http://xie.infoq.cn/article/4662b7b903533a86800bad64d】。文章转载请联系作者。
评论