马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
HarmonyOS下Camera相机相干API使用
预备工作
1. 导入camera接口
- import {
-
- camera } from '@kit.CameraKit';
- import {
-
- BusinessError } from '@kit.BasicServicesKit';
- import {
-
- common } from '@kit.AbilityKit';
复制代码 2.获取cameraManager对象
- getCameraManager(): camera.CameraManager {
-
-
- let cameraManager: camera.CameraManager = camera.getCameraManager(getContext(this));
- console.error("01 cameraManager."+cameraManager);
- return cameraManager;
- }
复制代码 3.通过cameraManager类中的getSupportedCameras方法
- getCameraDevices(cameraManager: camera.CameraManager): Array<camera.CameraDevice> {
-
-
- let cameraArray: Array<camera.CameraDevice> = cameraManager.getSupportedCameras();
- this.showContent = ''
- if (cameraArray != undefined && cameraArray.length > 0) {
-
-
- this.showContent = '支持的相机设备数量:' + cameraArray.length
- for (let index = 0; index < cameraArray.length; index++) {
-
-
- console.info('cameraId : ' + cameraArray[index].cameraId); // 获取相机ID
- console.info('cameraPosition : ' + cameraArray[index].cameraPosition); // 获取相机位置
- console.info('cameraType : ' + cameraArray[index].cameraType); // 获取相机类型
- console.info('connectionType : ' + cameraArray[index].connectionType); // 获取相机连接类型
- this.showContent = 'cameraId:' + cameraArray[index].cameraId + '|cameraType:' + cameraArray[index].cameraType + '|connectionType:' + cameraArray[index].connectionType
- }
- return cameraArray;
- } else {
-
-
- console.error("cameraManager.getSupportedCameras error");
- this.errorContent = ' cameraManager.getSupportedCameras error'
- return [];
- }
- }
复制代码 4.创建相机输入流
- createInput(cameraDevice: camera.CameraDevice, cameraManager: camera.CameraManager): Promise<camera.CameraInput | undefined> {
-
-
- // 创建相机输入流
- let cameraInput: camera.CameraInput | undefined = undefined;
- try {
-
-
- cameraInput = cameraManager.createCameraInput(cameraDevice);
- } catch (error) {
-
-
- let err = error as BusinessError;
- console.error('Failed to createCameraInput errorCode = ' + err.code);
- }
- if (cameraInput === undefined) {
-
-
- return undefined;
- }
- // 监听cameraInput错误信息
- cameraInput.on('error', cameraDevice, (error: BusinessError) => {
-
-
- console.error(`Camera input error code: ${
-
- error.code}`);
- });
- // 打开相机
- await cameraInput.open();
- return cameraInput;
- }
复制代码 5.获取当前相机装备支持的全部输出流
- async getSupportedOutputCapability(cameraDevice: camera.CameraDevice, cameraManager: camera.CameraManager): Promise<camera.CameraOutputCapability | undefined> {
-
-
- // 创建相机输入流
- let cameraInput: camera.CameraInput | undefined = undefined;
- try {
-
-
- cameraInput = cameraManager.createCameraInput(cameraDevice);
- } catch (error) {
-
-
- let err = error as BusinessError;
- console.error('Failed to createCameraInput errorCode = ' + err.code);
- }
- if (cameraInput === undefined) {
-
-
- return undefined;
- }
- // 监听cameraInput错误信息
- cameraInput
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |