【鸿蒙开发】Camera Picker拍照和录制视频

//1.用一个页面来触发事件,在UIAbility中吊起相关相机拍照和录制视频
@Entry
@Component
struct Test_CameraPicker {
  build() {
    Stack() {
      Button('test').onClick(()=>{
        getContext(this).eventHub.emit("cameraevent")
      }).width(100).height(60)
    }
  }
}


//2.cameraPicker 需要在UIAbility 中使用
import { cameraPicker as picker } from '@kit.CameraKit';
import { camera } from '@kit.CameraKit';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let mContext  = getContext(this) as common.Context;

async function demo() {
  try {
    let pickerProfile: picker.PickerProfile = {
      cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
    };
    let pickerResult: picker.PickerResult = await picker.pick(mContext,
      [picker.PickerMediaType.PHOTO, picker.PickerMediaType.VIDEO], pickerProfile);
    console.log("the pick pickerResult is:" + JSON.stringify(pickerResult));
  } catch (error) {
    let err = error as BusinessError;
    console.error(`the pick call failed. error code: ${err.code}`);
  }
}

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    mContext = this.context //这个context的赋值非常重要啊
    this.context.eventHub.on("cameraevent",()=>{
      console.log('eventFunc is called');
      demo()
    })
  }
....  这里仅仅是截取了一段EntryAbility 代码(有增加),其他的都是创建的时候默认的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值