//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 代码(有增加),其他的都是创建的时候默认的
【鸿蒙开发】Camera Picker拍照和录制视频
最新推荐文章于 2024-09-30 09:25:50 发布