• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 分布式相机开发指导
2
3## 场景介绍
4
5分布式相机模块支持相机相关基础功能介绍说明。
6
7## 开发步骤
8在计算器中连接分布式设备,在获取相机列表getSupportedCameras(),遍历返回的列表,判断对应Camera对象中的ConnectionType是否等于CAMERA_CONNECTION_REMOTE,若等于则使用此对象创建cameraInput,之后调用与本地相机使用一样。参考:[相机开发指导](./camera.md)
9
10详细API含义请参考:[相机管理API文档](../reference/apis/js-apis-camera.md)
11
12### 连接分布式相机
13
14打开设置->WLAN,将需要连接分布式相机的两台设备连入同一局域网。
15
16打开计算器,点击右上角小图标,出现新的窗口,按提示输入验证码,连接成功。
17
18### 创建实例
19
20```js
21import camera from '@ohos.multimedia.camera'
22import image from '@ohos.multimedia.image'
23import media from '@ohos.multimedia.media'
24import featureAbility from '@ohos.ability.featureAbility'
25
26// 创建CameraManager对象
27let cameraManager = camera.getCameraManager(globalThis.Context)
28if (!cameraManager) {
29    console.error("camera.getCameraManager error")
30    return;
31}
32
33// 注册回调函数监听相机状态变化,获取状态变化的相机信息
34cameraManager.on('cameraStatus', (cameraStatusInfo) => {
35    console.log('camera : ' + cameraStatusInfo.camera.cameraId);
36    console.log('status: ' + cameraStatusInfo.status);
37})
38
39// 获取相机列表
40let remoteCamera
41let cameraArray = cameraManager.getSupportedCameras();
42if (cameraArray.length <= 0) {
43    console.error("cameraManager.getSupportedCameras error")
44    return;
45}
46
47for(let cameraIndex = 0; cameraIndex < cameraArray.length; cameraIndex++) {
48    console.log('cameraId : ' + cameraArray[cameraIndex].cameraId)                          // 获取相机ID
49    console.log('cameraPosition : ' + cameraArray[cameraIndex].cameraPosition)              // 获取相机位置
50    console.log('cameraType : ' + cameraArray[cameraIndex].cameraType)                      // 获取相机类型
51    console.log('connectionType : ' + cameraArray[cameraIndex].connectionType)              // 获取相机连接类型
52    if (cameraArray[cameraIndex].connectionType == CAMERA_CONNECTION_REMOTE) {
53        remoteCamera = cameraArray[cameraIndex]
54    }
55}
56
57// 创建相机输入流
58let cameraInput
59try {
60    cameraInput = cameraManager.createCameraInput(remoteCamera);
61} catch () {
62   console.error('Failed to createCameraInput errorCode = ' + error.code);
63}
64```
65剩余步骤参照[相机开发指导](./camera.md)