OpenHarmony ArkUI 如何调用相机

这篇具有很好参考价值的文章主要介绍了OpenHarmony ArkUI 如何调用相机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


ArkUI调用相机和调用相册其实是一个思路,只用修改一个地方。

我们继续来说相机调用,ArkUI没办法自己获取相机,所以得依靠一下@ohos.multimedia.camera

相机开发指导

介绍

本指导主要展示了调用相机的调用过程,以及调用相机的权限准备;

本指导对比了两种设计方案优劣,并给出推荐方案;

本指导使用的sample链接🔗:Camera

使用了如下接口:

@ohos.abilityAccessCtrl

@ohos.multimedia.camera

开发设计

注意事项:请确保已经获取权限后再调用相关接口,否则无法调用成功也不会提示,开发者会浪费时间在检查自己代码上。具体分析如下:

如果像如下流程直接调用接口可能会导致接口不能调用的问题:

OpenHarmony ArkUI 如何调用相机,open harmony开发,鸿蒙应用,arkui开发,调用相机,oh,openharmony,arkui,swiftui,ios,鸿蒙开发

所以我们建议开发者使用如下设计:

OpenHarmony ArkUI 如何调用相机,open harmony开发,鸿蒙应用,arkui开发,调用相机,oh,openharmony,arkui,swiftui,ios,鸿蒙开发

  1. 检查相机授权状态(检查授权状态)
  2. 主动请求查相机授权(主动请求授权)
  3. 打开相机(调用需要授权的接口)
  4. 调用拍照接口

开发步骤

  1. 导入头文件
import type { Permissions } from '@ohos.abilityAccessCtrl';
  1. 查询相机授权状态
let atManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取
try {
    atManager.checkAccessToken(tokenID, 'ohos.permission.GRANT_SENSITIVE_PERMISSIONS').then((data) => {
        console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);
    }).catch((err) => {
        console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`);
    });
} catch(err) {
    console.log(`catch err->${JSON.stringify(err)}`);
}
OpenHarmony ArkUI 如何调用相机,open harmony开发,鸿蒙应用,arkui开发,调用相机,oh,openharmony,arkui,swiftui,ios,鸿蒙开发
  1. 获取相机权限

相关完整代码链接:
PermissionUtils.ets

关键代码如下:

let atManager = abilityAccessCtrl.createAtManager();
try {
  atManager.requestPermissionsFromUser(this.context, ['ohos.permission.CAMERA'], (err, data)=>{
      console.info('data:' + JSON.stringify(data));
      console.info('data permissions:' + data.permissions);
      console.info('data authResults:' + data.authResults);
  });
} catch(err) {
  console.log(`catch err->${JSON.stringify(err)}`);
}
OpenHarmony ArkUI 如何调用相机,open harmony开发,鸿蒙应用,arkui开发,调用相机,oh,openharmony,arkui,swiftui,ios,鸿蒙开发
  1. 定义一个相机对象

相关完整代码链接:
CameraModel.ts

关键代码如下:

export default class CameraService {
    private photoOutPut: camera.PhotoOutput = undefined;
}
  1. 调用拍照接口

相关完整代码链接:
Camera.ets

关键代码如下:

Image(this.getCameraIcon())
  .size({ width: 64, height: 64 })
  .margin({ left: 10 })
  .id('camera')
  .onClick(() => {
    Logger.info(TAG, 'takePicture begin');
    prompt.showToast({ message: '拍照中...', duration: 200 });
    this.cameraModel.takePicture();
  })
OpenHarmony ArkUI 如何调用相机,open harmony开发,鸿蒙应用,arkui开发,调用相机,oh,openharmony,arkui,swiftui,ios,鸿蒙开发

总结

由于相机强关联硬件设备,在开发前要确保硬件设备完整性。其次,相机开发主要关注权限问题,避免因权限问题延长调试时间。此外,还因关注不同设备差异性产生的接口不兼容问题,需要测试覆盖完整。


本指导使用的sample链接🔗:Camera文章来源地址https://www.toymoban.com/news/detail-629883.html

到了这里,关于OpenHarmony ArkUI 如何调用相机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenHarmony相机和媒体库-如何在ArkTS中调用相机拍照和录像。

    此Demo展示如何在ArkTS中调用相机拍照和录像,以及如何使用媒体库接口进行媒体文件的增、删、改、查操作。 本示例用到了权限管理能力@ohos.abilityAccessCtrl 相机模块能力接口@ohos.multimedia.camera 图片处理接口@ohos.multimedia.image 音视频相关媒体业务能力接口@ohos.multimedia.media 媒体

    2024年04月28日
    浏览(37)
  • 【Harmony OS】【JAVA UI】鸿蒙智能手表开发,如何判断未联网

     在手表开发过程中,手表是否连接网络怎么判断呢?下面我们就来学习一下 【问题描述】 harmony智能手表开发,如何判断未联网(包括 wifi 和 数据业务) 【解决方案】 鸿蒙暂无判断联网的相关API。 我们可以调用http的网络请求的接口,比如下载前,可以先get或者post的接口

    2024年02月16日
    浏览(59)
  • 【Harmony OS】【ArkUI】ets开发 图形与动画绘制

    【ArkUI 】ets 开发  图形与动画绘制 前言:之前我们已经完成了Harmony ArkUI  使用ets 方式实现基础的页面布局和数据连接的学习,这次我们在原有的基础上进行一些图片和动画的绘制学习。本篇是以HarmonyOS 官网的基于TS 扩展的声明式开发范式文档,绘图和动画为基础进行编写

    2024年02月16日
    浏览(41)
  • 【Harmony OS】【ArkUI】ets开发 简易视频播放器

    前言:这一次我们来使用ets 的Swiper 组件、List 组件和Video 组件制作一个简易的视频播放器。本篇是以HarmonyOS 官网的codelab 简易视频播放器(eTS )为基础进行编写。本篇最主要的内容就是一个主界面包括顶部的视频海报轮播,中部的视频播放列表,以及点击海报和播放列表进

    2023年04月27日
    浏览(35)
  • OpenHarmony 应用 ArkUI 状态管理开发范例

    本文转载自《#2023 盲盒+码 # OpenHarmony 应用 ArkUI 状态管理开发范例》,作者:zhushangyuan_ 本文根据橘子购物应用,实现 ArkUI 中的状态管理。 在声明式 UI 编程框架中,UI 是程序状态的运行结果,用户构建了一个 UI 模型,其中应用的运行时的状态是参数。当参数改变时,UI 作为

    2024年02月10日
    浏览(33)
  • OpenHarmony开发实战:ArkUI常用布局容器对齐方式(ArkTS

    export struct ColumnShowList { @Consume currentColumnJustifyContent: FlexAlign; @Consume currentColumnAlignItems: HorizontalAlign; build() { Column() { Column() { ForEach(LIST, (item: number) = { CommonItem({ item: item }) }, (item: number) = JSON.stringify(item)) } … // 设置主轴对齐方式 ColumnMainAlignRadioList() .margin({ top: MARGIN_FONT_SIZE_SP

    2024年04月14日
    浏览(34)
  • 鸿蒙arkui初体验比起flutter如何

    刚接触鸿蒙的ArkUI,谈谈看法。安装环境还是挺快的,没有flutter这种国外框架的限制,下载sdk什么的都贼快! 如同Flutter的热重载技术,实时预览 语法如图, 和SwiftUI和Compose都极其相像,虽然说是声明式,但是为啥还是把属性给放外面捏! ArkUI是一套构建HarmonyOS应用界面的声

    2024年01月25日
    浏览(59)
  • 初识鸿蒙跨平台开发框架ArkUI-X

    HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通

    2024年02月13日
    浏览(47)
  • 鸿蒙系列-如何使用好 ArkUI 的 @Reusable?

    OpenHarmony 组件复用机制 在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为 系统组件 ,由开发者定义的称为 自定义组件 。 在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,

    2024年02月10日
    浏览(42)
  • Harmony鸿蒙南向驱动开发流程

    HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。并以组件化驱动模型作为核心设计思路,让驱动开发和部署更加规范,旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的驱动

    2024年04月27日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包