HarmonyOS 如何实现轻触拍照以及长按录制?

由于cameraPicker自身就是一个应用,所提供的界面是固定的,目前只能在UIAbility中进行调用,且调用时需要传入响应的模式跳转到对应模式的相机页面,对于这种有自定义处理事件的场景,了解到需要自行通过相机API实现相机的预览、拍照及录像,即在一个按钮上监听点击事件和长按事件,点击事件时直接触发拍照流程,长按超过xxx毫秒触发长按事件进而触发录像流程。

阅读 632
1 个回答

通过相机API实现相机的预览、拍照及录像,可以参考以下Demo:

https://gitee.com/harmonyos/samples/tree/master/HarmonyOS\_NEXT/Media/Camera

然后需要修改Demo中按钮的处理事件,在一个按钮上监听点击事件和长按事件,点击事件时直接触发拍照流程,长按超过xxx毫秒触发长按事件进而触发录像流程,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-gestures-longpressgesture-V5

比如在一个Text组件上添加点击和长按事件:

Text('测试')
  .onClick(() => {
    // 拍照模式
    this.cameraModel.takePicture();
  })
  .gesture(
    LongPressGesture({ repeat: true })
      .onAction((event: GestureEvent) => {
        // 需要先切换为录像模式
        if (event && event.repeat) {
          this.refreshVideoState()
        }
      })
      .onActionEnd(() => {
        console.info("------>长按结束");
      })
  )
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进