鸿蒙无权限实现图片选择拍照和录视频
2024-12-31 13:36:18
67次阅读
0个评论
在鸿蒙开发中,系统提供了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)
})
用户在系统拍照录视频页面,可以自己选择很多参数,例如是否打开闪光灯,图片的宽高比,视频的帧率,是否撕开参考线等等,可选择的参数很多,灵活度也很高,基本可以满足日常的使用场景,最主要的是不用向用户申请权限,还是非常方便的。
00
- 0回答
- 0粉丝
- 0关注
相关话题
- 如何调用系统拍照并获取图片
- 拍照实现方案
- 鸿蒙Next如何实现打开相册选图片功能?
- 如何通过系统相机拍照和录像
- 分段式拍照实现方案
- 【HarmonyOS Next开发】应用权限原理和封装
- Flutter 鸿蒙化 使用 Flutter Channel实现和Flutter和HarmonyOS交互
- 鸿蒙保存图片到相册
- 高性能拍照实现方案(仅对系统应用开放)
- 「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
- HarmonyOS ArkTS中视频播放Video组件实现竖屏到横屏切换
- 选择OpenHarmony学习资源的考量因素
- 如何跳转到权限设置页面
- 【HarmonyOS NEXT】ACL 受限权限申请
- 「Mac畅玩鸿蒙与硬件26」UI互动应用篇3 - 倒计时和提醒功能实现