自学内容网 自学内容网

【鸿蒙开发】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 代码(有增加),其他的都是创建的时候默认的


原文地址:https://blog.csdn.net/scusyq/article/details/140711420

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!