写点什么

鸿蒙无权限实现图片选择拍照和录视频

作者:龙儿筝
  • 2024-11-21
    上海
  • 本文字数:1357 字

    阅读完需:约 4 分钟

在鸿蒙开发中,系统提供了 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 参数可以预选中一些图片,以便避免每次打开图片选择器,都是重新选择,从而导致之前选择的图片丢失了。一个完整的示例如下


new photoAccessHelper.PhotoViewPicker().select({  MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,  maxSelectNumber: 9,  isEditSupported: false,  isOriginalSupported: rue,  preselectedUris: [],  isPhotoTakingSupported: false,  isPreviewForSingleSelectionSupported: false,  isSearchSupported: false}, (err, data) => {  console.log(data)})
复制代码

使用 cameraPicker 拍照和录视频

我们可以通过 cameraPicker 的 select 方法来进行拍照或录视频,也可以同时设置拍照和录视频,用户在拍照页面自行选择是拍照还是录视频。具体使用参数如下


  • mediaTypes:是一个数组,设置为拍照片,还是录视频,也可以同时设置

  • cameraPosition:设置是使用前置摄像头还是后置摄像头进行拍照或录视频

  • saveUri:设置拍照或录制的视频保存的位置,通常设置成我们的沙箱目录

  • videoDuration:当模式为录视频时,此参数为设置视频的最大时长。一个完整的示例如下


cameraPicker.pick(context,[cameraPicker.PickerMediaType.PHOTO, cameraPicker.PickerMediaType.VIDEO],  { cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK,saveUri:'',videoDuration:30 })  .then((value) => {    console.log(value.resultUri)  })
复制代码


用户在系统拍照录视频页面,可以自己选择很多参数,例如是否打开闪光灯,图片的宽高比,视频的帧率,是否撕开参考线等等,可选择的参数很多,灵活度也很高,基本可以满足日常的使用场景,最主要的是不用向用户申请权限,还是非常方便的。


发布于: 刚刚阅读数: 5
用户头像

龙儿筝

关注

还未添加个人签名 2024-10-27 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙无权限实现图片选择拍照和录视频_鸿蒙_龙儿筝_InfoQ写作社区