HarmonyOS 鸿蒙Next api9 Stage模型下ArkTS唤起相机

HarmonyOS 鸿蒙Next api9 Stage模型下ArkTS唤起相机

api9 Stage模型下ArkTS唤起相机


//方案2 import abilityAccessCtrl from ‘@ohos.abilityAccessCtrl’; import common from ‘@ohos.app.ability.common’; //测试中

//方案1 // import camera from ‘@ohos.multimedia.camera’; // 失败//@ohos.multimedia.camera是系统接口,只有系统应用能调用

@Entry @Component struct Index {

build() { Row() { Column() {

    Text('调用相机')
      .fontSize(50)
      .fontWeight(FontWeight.Bold)
    Button('确定', { type: ButtonType.Normal, stateEffect: true })
      .borderRadius(8)
      .backgroundColor(0x317aff)
      .fontSize(50)
      .width(200)
      .onClick(() => {    //点击事件
        this.takePhoto();
      })

  }
  .width('100%')
}
.height('100%')

}

async takePhoto() { //打开相机 await abilityAccessCtrl.createAtManager() .requestPermissionsFromUser(getContext(this), [‘ohos.permission.CAMERA’, ‘ohos.permission.READ_MEDIA’]) let context = getContext(this) as common.UIAbilityContext let result = await context.startAbilityForResult({ action: “ohos.want.action.imageCapture” }) return result.want.uri } }


更多关于HarmonyOS 鸿蒙Next api9 Stage模型下ArkTS唤起相机的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

论坛中看到的方案,完善了一下。

更多关于HarmonyOS 鸿蒙Next api9 Stage模型下ArkTS唤起相机的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


楼主,你好。你的方法能获取到result.want.uri这个吗?我在模拟器上获取到的是空。

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

你可能要在真实机运行才有返回数据,

楼主,完善的放在哪了,谢谢,再请教一下,有相机的源代码吗,我能判断相机里的东西吗

2楼有个链接,你可以试一下,

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

在HarmonyOS(鸿蒙Next)API 9的Stage模型下,使用ArkTS唤起相机的过程涉及以下几个关键步骤:

  1. 权限申请:首先需要在config.json文件中声明相机权限:

    {
      "module": {
        "reqPermissions": [
          {
            "name": "ohos.permission.CAMERA"
          }
        ]
      }
    }
    
  2. 导入模块:在ArkTS文件中导入相机相关的模块:

    import camera from '[@ohos](/user/ohos).multimedia.camera';
    import { BusinessError } from '[@ohos](/user/ohos).base';
    
  3. 创建相机实例:使用getCameraManager方法获取相机管理器,然后创建相机实例:

    let cameraManager = camera.getCameraManager(context);
    let cameraDevices = cameraManager.getSupportedCameras();
    let cameraInput = cameraManager.createCameraInput(cameraDevices[0]);
    
  4. 配置会话:创建并配置相机会话,包括输入和输出:

    let captureSession = cameraManager.createCaptureSession();
    captureSession.addInput(cameraInput);
    let previewOutput = cameraManager.createPreviewOutput();
    captureSession.addOutput(previewOutput);
    
  5. 启动相机:配置完成后,启动相机会话:

    captureSession.start();
    
  6. 处理错误:在操作过程中,捕获和处理可能出现的错误:

    try {
      captureSession.start();
    } catch (error) {
      console.error(`Failed to start camera session, error code: ${(error as BusinessError).code}`);
    }
    

通过这些步骤,可以在HarmonyOS(鸿蒙Next)API 9的Stage模型下,使用ArkTS成功唤起相机。

回到顶部