1# Camera子系统变更说明
2
3OpenHarmony 4.1.6.1 版本相较于OpenHarmony之前的版本,Camera的API使用权限变更如下。
4
5## cl.camera.1 getSupportedOutputCapability接口变更
6
7**访问级别**
8
9公开接口
10
11**变更原因**
12
13getSupportedOutputCapability用来查询相机设备支持的输出能力,增加入参mode: SceneMode,接口改为查询相机设备在模式下支持的输出能力。
14
15**变更影响**
16
17getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability会在API11版本废弃,保留五个版本。
18API11版本新增getSupportedOutputCapability(camera: CameraDevice, mode: SceneMode): CameraOutputCapability。
19
20**关键的接口/组件变更**
21
22- 涉及接口
23
24  getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability
25
26- 变更前:
27
28  入参只有相机设备camera: CameraDevice。
29
30- 变更后:
31
32  增加入参相机模式mode: SceneMode。
33
34**适配指导**
35
36先通过API11新增接口getSupportedSceneModes(camera: CameraDevice): Array\<SceneMode\>, 来获取相机设备对象支持的模式,再通过新增getSupportedOutputCapability(camera: CameraDevice, mode: SceneMode): CameraOutputCapability接口,查询相机设备在模式下支持的输出能力。
37
38**API Level**
39
4011
41
42**变更发生版本**
43
44从OpenHarmony SDK 4.1.6.3开始。
45
46## cl.camera.2 createPhotoOutput接口变更
47
48**访问级别**
49
50公开接口
51
52**变更原因**
53
54createPhotoOutput用来创建拍照输出对象,删除入参surfaceId: string,接口改为只通过拍照配置信息创建拍照输出对象。
55
56**变更影响**
57
58createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput会在API11版本废弃,保留五个版本。
59API11版本新增createPhotoOutput(profile: Profile): PhotoOutput。
60
61**关键的接口/组件变更**
62
63- 涉及接口
64
65  createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
66
67- 变更前:
68
69  入参包含支持的拍照配置信息profile以及从ImageReceiver获取的surfaceId。
70
71- 变更后:
72
73  入参只有支持的拍照配置信息profile。
74
75**适配指导**
76
77先通过API11新增接口createPhotoOutput(profile: Profile): PhotoOutput, 来创建拍照输出对象。
78
79**API Level**
80
8111
82
83**变更发生版本**
84
85从OpenHarmony SDK 4.1.6.3开始。
86
87## cl.camera.3 createCaptureSession接口变更
88
89**访问级别**
90
91公开接口
92
93**变更原因**
94
95createCaptureSession用来创建CaptureSession实例,API11后,Session通过模式进行区分,分为PhotoSession和VideoSession,通过API11新增接口createSession\<T extends Session\>(mode: SceneMode): T进行创建。
96
97**变更影响**
98
99createCaptureSession(): CaptureSession会在API11版本废弃,保留五个版本。
100API11版本新增createSession\<T extends Session\>(mode: SceneMode): T。
101
102**关键的接口/组件变更**
103
104- 涉及接口
105
106  createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
107
108- 变更前:
109
110  通过createCaptureSession(): CaptureSession创建CaptureSession实例。
111
112- 变更后:
113
114  通过createSession\<T extends Session\>(mode: SceneMode): T创建对应模式的Session。
115
116**适配指导**
117
118通过API11新增接口createSession\<T extends Session\>(mode: SceneMode): T创建对应模式的Session。
119
120**API Level**
121
12211
123
124**变更发生版本**
125
126从OpenHarmony SDK 4.1.6.3开始。
127
128## cl.camera.4 CaptureSession接口变更
129
130**访问级别**
131
132公开接口
133
134**变更原因**
135
136CaptureSession用来保存一次相机运行所需要的所有资源CameraInput、CameraOutput,并向相机设备申请完成相机功能(录像,拍照)的会话类。
137
138**变更影响**
139
140CaptureSession以及包含的接口会在API11版本废弃,保留五个版本。
141API11版本新增PhotoSession和VideoSession区分录像会话和拍照会话。
142
143**关键的接口/组件变更**
144
145- 涉及接口
146
147  CaptureSession
148
149- 变更前:
150
151  通过createCaptureSession(): CaptureSession创建CaptureSession实例。
152
153- 变更后:
154
155  通过createSession\<T extends Session\>(mode: SceneMode): T创建录像会话和拍照会话对应模式的Session。
156
157**适配指导**
158
159通过API11新增接口PhotoSession对应拍照模式会话,VideoSession对应录像模式会话。
160
161**API Level**
162
16311
164
165**变更发生版本**
166
167从OpenHarmony SDK 4.1.6.3开始。
168
169## cl.camera.5 PreviewOutput类start与stop接口变更
170
171**访问级别**
172
173公开接口
174
175**变更原因**
176
177PreviewOutput作为相机的预览输出,和会话保持一致,因此会话中的开始与停止操作,可以包含预览输出的开始与停止操作,因此PreviewOutput中的start与stop操作,在API11版本合并至Session的start与stop操作中。
178
179**变更影响**
180
181PreviewOutput接口包含的start与stop接口会在API11版本废弃,保留五个版本,合并至Session的start与stop操作中。
182
183**关键的接口/组件变更**
184
185- 涉及接口
186
187  PreviewOutput类start与stop
188
189- 变更前:
190
191  interface PreviewOutput extends CameraOutput
192    start(callback: AsyncCallback\<void\>): void
193    start(): Promise\<void\>
194    stop(callback: AsyncCallback\<void\>): void
195    stop(): Promise\<void\>
196
197- 变更后:
198
199  合并至PhotoSession或VideoSession的start和stop接口。
200
201**适配指导**
202
203无需适配,通过API11新增的PhotoSession或VideoSession的start和stop接口,或是CaptureSession的start和stop接口,即可执行PreviewOutput类的start和stop接口。
204
205## cl.camera.6 captureStart注册监听与解除注册监听接口变更
206
207**API Level**
208
20911
210
211**变更发生版本**
212
213从OpenHarmony SDK 4.1.6.3开始。
214
215**访问级别**
216
217公开接口
218
219**变更原因**
220
221captureStart注册监听与解除注册监听接口用来监听拍照开始,通过注册回调函数获取Capture ID,在API11版本中,captureStart事件会返回更多的信息,相关回调无法获取更多信息。
222
223**变更影响**
224
225captureStart注册监听与解除注册监听接口以及包含的接口会在API11版本废弃,保留五个版本。
226API11版本新增captureStartInfo注册监听与解除注册监听接口。回调数据为CaptureStartInfo结构体,可扩展性获取更多信息
227
228**关键的接口/组件变更**
229
230- 涉及接口
231
232  on(type: 'captureStart', callback: AsyncCallback\<number\>): void
233  off(type: 'captureStart', callback?: AsyncCallback\<number\>): void
234
235- 变更前:
236
237  通过captureStart注册监听与解除注册监听接口用来监听拍照开始,通过注册回调函数获取Capture ID。
238
239- 变更后:
240
241  新增CaptureStartInfo结构体,可扩展性获取更多信息
242  新增on(type: 'captureStartWithInfo', callback: AsyncCallback\<CaptureStartInfo\>): void
243  新增off(type: 'captureStartWithInfo', callback?: AsyncCallback\<CaptureStartInfo\>): void
244
245**适配指导**
246
247通过API11新增captureStartInfo注册监听与解除注册监听接口获取CaptureStartInfo。
248
249**API Level**
250
25111
252
253**变更发生版本**
254
255从OpenHarmony SDK 4.1.6.3开始。
256