`
龙儿筝
  • 浏览: 785 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多

在鸿蒙开发中,系统提供了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)
  })
 

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

0
0
分享到:
评论

相关推荐

    图库选择图片,拍照上传图片

    总结来说,实现"图库选择图片,拍照上传图片"这一功能,开发者需要掌握以下几个关键点:权限管理、图片选择器集成、相机API的调用、图片预处理和网络上传。每个环节都涉及特定的技术细节,需要开发者具备扎实的跨...

    解决React-Native的WebView不支持Android选择图片和拍照

    总结来说,解决React Native的WebView在Android上不支持选择图片和拍照的问题,需要结合`react-native-image-picker`库和自定义的WebView组件,通过JavaScriptInterface进行原生与Web之间的通信,实现图片选择功能。...

    鸿蒙Harmony OS操作系统英文文档V1.01

    在摄影(Camera)相关的开发指南部分,鸿蒙Harmony OS提供了丰富的API接口和工具,以支持开发者创建高性能、高质量的拍照应用。开发指南通常会涵盖以下几个关键知识点: 1. **相机硬件抽象层**:鸿蒙OS通过硬件抽象...

    Android 相册获取图片或者相机拍照获取图片

    以上就是使用Android Studio开发时,如何在4.4版本以上系统中获取图片和拍照的完整流程。通过FileProvider,我们可以安全地与其它应用共享文件,并遵循Android的权限管理规则。适配各种手机的文件系统路径主要体现在...

    HarmonyOS传感器和媒体管理

    在 HarmonyOS 中,传感器和媒体管理是至关重要的组成部分,它们为智能设备提供了丰富的功能和应用场景。传感器技术使得手机能够感知周围环境和用户的行为,而媒体管理则涉及到图像和音视频的捕捉、处理和分享。 ...

    精通HarmonyOS:高级应用开发技术与实战指南"

    - **摄像头API**:利用HarmonyOS提供的摄像头接口,开发拍照、视频通话等功能。 - **传感器API**:通过访问加速度计、陀螺仪等传感器,实现运动监测、手势识别等应用场景。 - **人工智能API**:集成自然语言处理、...

    CameraDemo.zip

    开发者需要了解HarmonyOS提供的文件系统接口和图片处理库。 9. **生命周期管理**: 应用在使用相机时,需要考虑生命周期管理,确保在适当的时候释放资源,防止内存泄漏或应用异常退出。 10. **调试与测试**: 使用...

    手机端网页调用摄像头 拍照识别二维码

    最后,如果在实现过程中遇到复杂的问题,例如图片处理速度慢、识别率低等,可能需要借助第三方服务,如腾讯的QrcodeReaderKit、阿里云的二维码识别服务等,它们提供更强大的识别能力和服务保障。 总的来说,手机端...

    华为鸿蒙深度研究报告.zip

    华为鸿蒙操作系统(HarmonyOS,又称鸿蒙OS)是华为公司自主研发的一款面向全场景的分布式操作系统,旨在打破不同设备之间的壁垒,实现万物互联。这款系统不仅应用于智能手机,还覆盖了平板电脑、智能电视、智能穿戴...

    相机设备的开发1.0.pdf

    - **位置权限**:`harmonyos.permission.LOCATION`(可选,仅在需要保存图像及视频的位置信息时申请) #### 九、总结 通过对HarmonyOS照相机模块的深入了解,我们可以看到,该模块不仅提供了丰富的API接口,还为...

    Android 系统相机拍照后相片无法在相册中显示解决办法

    在Android系统中,用户经常遇到一个问题,即使用系统相机拍照后,照片无法在相册中正常显示。这个问题可能由多种原因引起,包括权限问题、存储路径问题、媒体扫描器未及时更新等。以下是一些详细的解决办法和相关...

    android 调用系统相机照相并显示

    至于保存图片到本地,可以使用`ContentValues`和`MediaStore.Images.Media`类,将Bitmap转换成InputStream并插入到媒体库: ```java private File createImageFile() throws IOException { String timeStamp = new...

    柯达SP1运动摄像机手机客户端(安卓版)

    拍摄的视频和照片会自动保存在手机上,客户端提供了一套完整的文件管理系统,让用户可以方便地浏览、编辑和整理这些作品。同时,用户可以直接通过客户端将作品上传到社交媒体,如微信、抖音、Instagram等,与朋友们...

    Android4.2 ApiDemo

    - **照片Sphere API**:提供全景拍照功能的实现,包括图像的拼接和展示。 - **OpenGL ES 3.0 API**:包含使用新图形库进行3D渲染的示例。 - **Daydream API**:展示如何创建自定义的Daydream应用,以及如何与系统...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset ...• 多媒体支持 包括常见的音频、视频和...

Global site tag (gtag.js) - Google Analytics