Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
e1a1de93
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e1a1de93
编写于
9月 04, 2023
作者:
Z
zhangchao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【cameraFramework】js改ts
Signed-off-by:
N
zhangchao
<
zhangchao338@huawei.com
>
上级
e141f94e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
1231 addition
and
654 deletion
+1231
-654
zh-cn/application-dev/media/camera-performance-improvement.md
...n/application-dev/media/camera-performance-improvement.md
+4
-4
zh-cn/application-dev/reference/apis/js-apis-camera.md
zh-cn/application-dev/reference/apis/js-apis-camera.md
+1227
-650
未找到文件。
zh-cn/application-dev/media/camera-performance-improvement.md
浏览文件 @
e1a1de93
...
...
@@ -33,7 +33,7 @@
[
各类Context的获取方式
](
../application-models/application-context-stage.md
)
```
j
s
```
t
s
import
camera
from
'
@ohos.multimedia.camera
'
;
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
...
...
@@ -83,7 +83,7 @@ async function preview(context: featureAbility.Context, cameraInfo: camera.Camer
![](
figures/quick-thumbnail-sequence-diagram.png
)
[
各类Context的获取方式
](
../application-models/application-context-stage.md
)
```
j
s
```
t
s
import
camera
from
'
@ohos.multimedia.camera
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
import
image
from
'
@ohos.multimedia.image
'
;
...
...
@@ -152,7 +152,7 @@ function showOrSavePicture(pixelMap: image.PixelMap): void {
-
**桌面应用**
```
j
s
```
t
s
import
camera
from
'
@ohos.multimedia.camera
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
...
...
@@ -174,7 +174,7 @@ function showOrSavePicture(pixelMap: image.PixelMap): void {
具体申请方式及校验方式,请参考
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md
)
。
```
j
s
```
t
s
import
camera
from
'
@ohos.multimedia.camera
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
...
...
zh-cn/application-dev/reference/apis/js-apis-camera.md
浏览文件 @
e1a1de93
...
...
@@ -6,13 +6,13 @@
## 导入模块
```
j
s
```
t
s
import
camera
from
'
@ohos.multimedia.camera
'
;
```
## camera.getCameraManager
getCameraManager(context: Context): CameraManager
getCameraManager(context:
featureAbility.
Context): CameraManager
获取相机管理器实例,同步返回结果。
...
...
@@ -41,12 +41,24 @@ getCameraManager(context: Context): CameraManager
**示例:**
```
js
let
cameraManager
=
camera
.
getCameraManager
(
context
);
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getCameraManager
(
context
:
featureAbility
.
Context
):
camera
.
CameraManager
{
let
cameraManager
:
camera
.
CameraManager
;
try
{
cameraManager
=
camera
.
getCameraManager
(
context
);
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getCameraManager call failed. error code:
${
err
.
code
}
`
);
}
return
cameraManager
;
}
```
## camera.getModeManager
getModeManager(context: Context): ModeManager
getModeManager(context:
featureAbility.
Context): ModeManager
获取模式化管理器实例,同步返回结果。
...
...
@@ -79,8 +91,20 @@ getModeManager(context: Context): ModeManager
**示例:**
```
js
let
modeManager
=
camera
.
getModeManager
(
context
);
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getModeManager
(
context
:
featureAbility
.
Context
):
camera
.
ModeManager
{
let
modeManager
:
camera
.
ModeManager
;
try
{
modeManager
=
camera
.
getModeManager
(
context
);
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getModeManager call failed. error code:
${
err
.
code
}
`
);
}
return
modeManager
;
}
```
## CameraStatus
...
...
@@ -241,9 +265,19 @@ getSupportedCameras(): Array\<CameraDevice\>
**示例:**
```
j
s
let
cameras
=
cameraManager
.
getSupportedCameras
()
;
```
t
s
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getSupportedCameras
(
cameraManager
:
camera
.
CameraManager
):
Array
<
camera
.
CameraDevice
>
{
let
cameras
:
Array
<
camera
.
CameraDevice
>
;
try
{
cameras
=
cameraManager
.
getSupportedCameras
();
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getSupportedCameras call failed. error code:
${
err
.
code
}
`
);
}
return
cameras
;
}
```
### getSupportedOutputCapability
...
...
@@ -268,11 +302,11 @@ getSupportedOutputCapability(camera:CameraDevice): CameraOutputCapability
**示例:**
```
j
s
let
cameras
=
cameraManager
.
getSupportedCameras
();
let
cameraDevice
=
cameras
[
0
]
;
let
cameraOutputCapability
=
cameraManager
.
getSupportedOutputCapability
(
cameraDevice
)
;
```
t
s
function
getSupportedOutputCapability
(
cameraDevice
:
camera
.
CameraDevice
,
cameraManager
:
camera
.
CameraManager
):
camera
.
CameraOutputCapability
{
let
cameraOutputCapability
:
camera
.
CameraOutputCapability
=
cameraManager
.
getSupportedOutputCapability
(
cameraDevice
)
;
return
cameraOutputCapability
;
}
```
### isCameraMuted
...
...
@@ -293,8 +327,11 @@ isCameraMuted(): boolean
**示例:**
```
js
let
ismuted
=
cameraManager
.
isCameraMuted
();
```
ts
function
isCameraMuted
(
cameraManager
:
camera
.
CameraManager
):
boolean
{
let
isMuted
:
boolean
=
cameraManager
.
isCameraMuted
();
return
isMuted
;
}
```
### isCameraMuteSupported
...
...
@@ -315,8 +352,11 @@ isCameraMuteSupported(): boolean
**示例:**
```
js
let
ismutesuppotred
=
cameraManager
.
isCameraMuteSupported
();
```
ts
function
isCameraMuteSupported
(
cameraManager
:
camera
.
CameraManager
):
boolean
{
let
isMuteSupported
:
boolean
=
cameraManager
.
isCameraMuteSupported
();
return
isMuteSupported
;
}
```
### muteCamera
...
...
@@ -337,9 +377,11 @@ muteCamera(mute: boolean): void
**示例:**
```
js
let
mute
=
true
;
cameraManager
.
muteCamera
(
mute
);
```
ts
function
muteCamera
(
cameraManager
:
camera
.
CameraManager
):
void
{
let
mute
:
boolean
=
true
;
cameraManager
.
muteCamera
(
mute
);
}
```
### createCameraInput
...
...
@@ -374,14 +416,19 @@ createCameraInput(camera: CameraDevice): CameraInput
**示例:**
```
js
let
cameraDevice
=
cameras
[
0
];
let
cameraInput
;
try
{
cameraInput
=
cameraManager
.
createCameraInput
(
cameraDevice
);
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createCameraInput
(
cameraDevice
:
camera
.
CameraDevice
,
cameraManager
:
camera
.
CameraManager
):
camera
.
CameraInput
{
let
cameraInput
:
camera
.
CameraInput
;
try
{
cameraInput
=
cameraManager
.
createCameraInput
(
cameraDevice
);
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The createCameraInput call failed. error code:
${
err
.
code
}
`
);
}
return
cameraInput
;
}
```
...
...
@@ -418,16 +465,21 @@ createCameraInput(position: CameraPosition, type: CameraType): CameraInput
**示例:**
```
js
let
cameraDevice
=
cameras
[
0
];
let
position
=
cameraDevice
.
cameraPosition
;
let
type
=
cameraDevice
.
cameraType
;
let
cameraInput
;
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createCameraInput
(
cameraDevice
:
camera
.
CameraDevice
,
cameraManager
:
camera
.
CameraManager
):
camera
.
CameraInput
{
let
position
:
camera
.
CameraPosition
=
cameraDevice
.
cameraPosition
;
let
type
:
camera
.
CameraType
=
cameraDevice
.
cameraType
;
let
cameraInput
:
camera
.
CameraInput
;
try
{
cameraInput
=
cameraManager
.
createCameraInput
(
position
,
type
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The createCameraInput call failed. error code:
${
err
.
code
}
`
);
}
return
cameraInput
;
}
```
...
...
@@ -462,14 +514,20 @@ createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput
**示例:**
```
js
let
profile
=
cameraOutputCapability
.
previewProfiles
[
0
];
let
previewOutput
;
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createPreviewOutput
(
cameraOutputCapability
:
camera
.
CameraOutputCapability
,
cameraManager
:
camera
.
CameraManager
,
surfaceId
:
string
):
camera
.
PreviewOutput
{
let
profile
:
camera
.
Profile
=
cameraOutputCapability
.
previewProfiles
[
0
];
let
previewOutput
:
camera
.
PreviewOutput
;
try
{
previewOutput
=
cameraManager
.
createPreviewOutput
(
profile
,
surfaceId
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The createPreviewOutput call failed. error code:
${
err
.
code
}
`
);
}
return
previewOutput
;
}
```
...
...
@@ -504,14 +562,20 @@ createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
**示例:**
```
js
let
profile
=
cameraOutputCapability
.
photoProfiles
[
0
];
let
photoOutput
;
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createPhotoOutput
(
cameraOutputCapability
:
camera
.
CameraOutputCapability
,
cameraManager
:
camera
.
CameraManager
,
surfaceId
:
string
):
camera
.
PhotoOutput
{
let
profile
:
camera
.
Profile
=
cameraOutputCapability
.
photoProfiles
[
0
];
let
photoOutput
:
camera
.
PhotoOutput
;
try
{
photoOutput
=
cameraManager
.
createPhotoOutput
(
profile
,
surfaceId
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The createPhotoOutput call failed. error code:
${
err
.
code
}
`
);
}
return
photoOutput
;
}
```
...
...
@@ -546,14 +610,20 @@ createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput
**示例:**
```
js
let
profile
=
cameraOutputCapability
.
videoProfiles
[
0
];
let
videoOutput
;
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createVideoOutput
(
cameraOutputCapability
:
camera
.
CameraOutputCapability
,
cameraManager
:
camera
.
CameraManager
,
surfaceId
:
string
):
camera
.
VideoOutput
{
let
profile
:
camera
.
VideoProfile
=
cameraOutputCapability
.
videoProfiles
[
0
];
let
videoOutput
:
camera
.
VideoOutput
;
try
{
videoOutput
=
cameraManager
.
createVideoOutput
(
profile
,
surfaceId
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The createPhotoOutput call failed. error code:
${
err
.
code
}
`
);
}
return
videoOutput
;
}
```
...
...
@@ -587,14 +657,19 @@ createMetadataOutput(metadataObjectTypes:Array\<MetadataObjectType\>): MetadataO
**示例:**
```
js
let
metadataObjectTypes
=
cameraOutputCapability
.
supportedMetadataObjectTypes
;
let
metadataOutput
;
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createMetadataOutput
(
cameraManager
:
camera
.
CameraManager
,
cameraOutputCapability
:
camera
.
CameraOutputCapability
):
void
{
let
metadataObjectTypes
:
Array
<
camera
.
MetadataObjectType
>
=
cameraOutputCapability
.
supportedMetadataObjectTypes
;
let
metadataOutput
:
camera
.
MetadataOutput
;
try
{
metadataOutput
=
cameraManager
.
createMetadataOutput
(
metadataObjectTypes
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`createMetadataOutput error. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -622,13 +697,19 @@ createCaptureSession(): CaptureSession
**示例:**
```
js
let
captureSession
;
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createCaptureSession
(
cameraManager
:
camera
.
CameraManager
):
camera
.
CaptureSession
{
let
captureSession
:
camera
.
CaptureSession
;
try
{
captureSession
=
cameraManager
.
createCaptureSession
();
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`createCaptureSession error. error code:
${
err
.
code
}
`
);
}
return
captureSession
;
}
```
...
...
@@ -649,11 +730,15 @@ on(type: 'cameraStatus', callback: AsyncCallback\<CameraStatusInfo\>): void
**示例:**
```
js
cameraManager
.
on
(
'
cameraStatus
'
,
(
err
,
cameraStatusInfo
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerCameraStatus
(
cameraManager
:
camera
.
CameraManager
):
void
{
cameraManager
.
on
(
'
cameraStatus
'
,
(
err
:
BusinessError
,
cameraStatusInfo
:
camera
.
CameraStatusInfo
)
=>
{
console
.
log
(
`camera :
${
cameraStatusInfo
.
camera
.
cameraId
}
`
);
console
.
log
(
`status:
${
cameraStatusInfo
.
status
}
`
);
})
});
}
```
### off('cameraStatus')
...
...
@@ -673,8 +758,10 @@ off(type: 'cameraStatus', callback?: AsyncCallback\<CameraStatusInfo\>): void
**示例:**
```
js
cameraManager
.
off
(
'
cameraStatus
'
)
```
ts
function
unregisterCameraStatus
(
cameraManager
:
camera
.
CameraManager
):
void
{
cameraManager
.
off
(
'
cameraStatus
'
);
}
```
### on('cameraMute')
...
...
@@ -696,10 +783,15 @@ on(type: 'cameraMute', callback: AsyncCallback\<boolean\>): void
**示例:**
```
js
cameraManager
.
on
(
'
cameraMute
'
,
(
err
,
curMuetd
)
=>
{
let
isMuted
=
curMuetd
;
})
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerCameraMute
(
cameraManager
:
camera
.
CameraManager
):
void
{
cameraManager
.
on
(
'
cameraMute
'
,
(
err
:
BusinessError
,
curMuted
:
boolean
)
=>
{
let
isMuted
:
boolean
=
curMuted
;
console
.
log
(
`cameraMute status:
${
isMuted
}
`
);
})
}
```
### off('cameraMute')
...
...
@@ -721,12 +813,17 @@ off(type: 'cameraMute', callback?: AsyncCallback\<boolean\>): void
**示例:**
```
js
func
(
err
,
curMuetd
)
{
let
isMuted
=
curMuetd
;
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
callback
(
err
:
BusinessError
,
curMuetd
:
boolean
):
void
{
let
isMuted
:
boolean
=
curMuetd
;
}
function
unregisterCameraMute
(
cameraManager
:
camera
.
CameraManager
):
void
{
cameraManager
.
on
(
'
cameraMute
'
,
callback
);
cameraManager
.
off
(
'
cameraMute
'
,
callback
);
}
cameraManager
.
on
(
'
cameraMute
'
,
func
)
cameraManager
.
off
(
'
cameraMute
'
,
func
)
```
### isPrelaunchSupported
...
...
@@ -761,11 +858,15 @@ isPrelaunchSupported(camera: CameraDevice): boolean
**示例:**
```
js
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
let
cameras
=
this
.
cameraManager
.
getSupportedCameras
()
if
(
this
.
cameraManager
.
isPrelaunchSupported
(
cameras
[
0
]))
{
this
.
cameraManager
.
setPrelaunchConfig
({
cameraDevice
:
cameras
[
0
]});
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
function
isPreLaunchSupported
(
context
:
featureAbility
.
Context
):
boolean
{
let
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
let
isSupported
:
boolean
=
cameraManager
.
isPrelaunchSupported
(
cameras
[
0
]);
console
.
log
(
`PreLaunch supported states:
${
isSupported
}
`
);
return
isSupported
;
}
```
...
...
@@ -796,15 +897,21 @@ setPrelaunchConfig(prelaunchConfig: PrelaunchConfig): void
**示例:**
```
js
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
let
cameras
=
this
.
cameraManager
.
getSupportedCameras
()
if
(
this
.
cameraManager
.
isPrelaunchSupported
(
cameras
[
0
]))
{
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setPrelaunchConfig
(
context
:
featureAbility
.
Context
):
void
{
let
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
if
(
cameraManager
.
isPrelaunchSupported
(
cameras
[
0
]))
{
try
{
this
.
cameraManager
.
setPrelaunchConfig
({
cameraDevice
:
cameras
[
0
]});
cameraManager
.
setPrelaunchConfig
({
cameraDevice
:
cameras
[
0
]});
}
catch
(
error
)
{
console
.
error
(
`catch error: Code:
${
error
.
code
}
, message:
${
error
.
message
}
`
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`setPrelaunchConfig error. Code:
${
err
.
code
}
, message:
${
err
.
message
}
`
);
}
}
}
```
...
...
@@ -820,12 +927,18 @@ prelaunch(): void
**示例:**
```
js
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
try
{
this
.
cameraManager
.
prelaunch
();
}
catch
(
error
)
{
console
.
error
(
`catch error: Code:
${
error
.
code
}
, message:
${
error
.
message
}
`
);
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
preLaunch
(
context
:
featureAbility
.
Context
):
void
{
let
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
try
{
cameraManager
.
prelaunch
();
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`prelaunch error. Code:
${
error
.
code
}
, message:
${
error
.
message
}
`
);
}
}
```
...
...
@@ -861,10 +974,10 @@ createDeferredPreviewOutput(profile: Profile): PreviewOutput
**示例:**
```
j
s
function
getDeferredPreviewOutput
(
context
:
Context
,
previewProfile
:
camera
.
Profile
):
Promise
<
PreviewOutput
>
{
const
cameraManager
=
camera
.
getCameraManager
(
context
);
const
output
:
Promise
<
PreviewOutput
>
=
cameraManager
.
createDeferredPreviewOutput
(
previewProfile
);
```
t
s
function
getDeferredPreviewOutput
(
context
:
Context
,
previewProfile
:
camera
.
Profile
):
camera
.
PreviewOutput
{
const
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
const
output
:
camera
.
PreviewOutput
=
cameraManager
.
createDeferredPreviewOutput
(
previewProfile
);
return
output
;
}
```
...
...
@@ -896,9 +1009,11 @@ getSupportedModes(device: CameraDevice): Array\<CameraMode\>
**示例:**
```
js
let
cameraModes
=
cameraManager
.
getSupportedModes
(
cameraDevices
[
0
]);
```
ts
function
getSupportedModes
(
cameraManager
:
camera
.
CameraManager
,
cameraDevice
:
camera
.
CameraDevice
):
Array
<
camera
.
CameraMode
>
{
let
cameraModes
:
Array
<
camera
.
CameraMode
>
=
cameraManager
.
getSupportedModes
(
cameraDevice
);
return
cameraModes
;
}
```
### getSupportedOutputCapability
...
...
@@ -926,13 +1041,21 @@ getSupportedOutputCapability(device:CameraDevice, mode: CameraMode): CameraOutpu
**示例:**
```
js
let
cameras
=
cameraManager
.
getSupportedCameras
();
let
cameraDevice
=
cameras
[
0
];
let
cameraModes
=
modeManager
.
getSupportedModes
(
cameraDevice
);
let
mode
=
cameraModes
[
0
]
let
cameraOutputCapability
=
modeManager
.
getSupportedOutputCapability
(
cameraDevice
,
mode
);
```
ts
function
getSupportedOutputCapability
(
cameraManager
:
camera
.
CameraManager
,
modeManager
:
camera
.
ModeManager
):
camera
.
CameraOutputCapability
{
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
if
(
cameras
==
undefined
||
cameras
.
length
<=
0
)
{
return
;
}
let
cameraDevice
:
camera
.
CameraDevice
=
cameras
[
0
];
let
cameraModes
:
Array
<
camera
.
CameraMode
>
=
modeManager
.
getSupportedModes
(
cameraDevice
);
if
(
cameraModes
===
undefined
||
cameraModes
.
length
<=
0
)
{
return
;
}
let
mode
:
camera
.
CameraMode
=
cameraModes
[
0
];
let
cameraOutputCapability
:
camera
.
CameraOutputCapability
=
modeManager
.
getSupportedOutputCapability
(
cameraDevice
,
mode
);
return
cameraOutputCapability
;
}
```
### createCaptureSession
...
...
@@ -958,13 +1081,29 @@ createCaptureSession(mode: CameraMode): CaptureSession
**示例:**
```
js
let
cameras
=
cameraManager
.
getSupportedCameras
();
let
cameraDevice
=
cameras
[
0
];
let
cameraModes
=
modeManager
.
getSupportedModes
(
cameraDevice
);
let
mode
=
cameraModes
[
0
]
let
captureSession
=
modeManager
.
createCaptureSession
(
mode
);
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
createCaptureSession
(
cameraManager
:
camera
.
CameraManager
,
modeManager
:
camera
.
ModeManager
):
camera
.
CaptureSession
{
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
if
(
cameras
==
undefined
||
cameras
.
length
<=
0
)
{
return
;
}
let
cameraDevice
:
camera
.
CameraDevice
=
cameras
[
0
];
let
cameraModes
:
Array
<
camera
.
CameraMode
>
=
modeManager
.
getSupportedModes
(
cameraDevice
);
if
(
cameraModes
===
undefined
||
cameraModes
.
length
<=
0
)
{
return
;
}
let
mode
:
camera
.
CameraMode
=
cameraModes
[
0
];
let
captureSession
:
camera
.
CaptureSession
try
{
captureSession
=
modeManager
.
createCaptureSession
(
mode
);
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The createCaptureSession call failed. error code:
${
err
.
code
}
`
);
}
return
captureSession
;
}
```
## PrelaunchConfig
...
...
@@ -1123,14 +1262,18 @@ open\(callback: AsyncCallback\<void\>\): void
**示例:**
```
js
cameraInput
.
open
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
openCameraInput
(
cameraInput
:
camera
.
CameraInput
):
void
{
cameraInput
.
open
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to open the camera.
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to open the camera.
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback returned with camera opened.
'
);
})
});
}
```
### open
...
...
@@ -1159,12 +1302,16 @@ open(): Promise\<void\>
**示例:**
```
js
cameraInput
.
open
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
openCameraInput
(
cameraInput
:
camera
.
CameraInput
):
void
{
cameraInput
.
open
().
then
(()
=>
{
console
.
log
(
'
Promise returned with camera opened.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
error
(
`Failed to open the camera.
${
err
.
code
}
`
);
});
});
}
```
### close
...
...
@@ -1191,14 +1338,18 @@ close\(callback: AsyncCallback\<void\>\): void
**示例:**
```
js
cameraInput
.
close
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
closeCameraInput
(
cameraInput
:
camera
.
CameraInput
):
void
{
cameraInput
.
close
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to close the cameras.
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to close the cameras.
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback returned with camera closed.
'
);
})
});
}
```
### close
...
...
@@ -1225,12 +1376,16 @@ close(): Promise\<void\>
**示例:**
```
js
cameraInput
.
close
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
closeCameraInput
(
cameraInput
:
camera
.
CameraInput
):
void
{
cameraInput
.
close
().
then
(()
=>
{
console
.
log
(
'
Promise returned with camera closed.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
error
(
`Failed to close the cameras.
${
err
.
code
}
`
);
});
});
}
```
### on('error')
...
...
@@ -1251,10 +1406,14 @@ on(type: 'error', camera:CameraDevice, callback: ErrorCallback): void
**示例:**
```
js
cameraInput
.
on
(
'
error
'
,
cameraDevice
,
(
error
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerCameraInputError
(
cameraInput
:
camera
.
CameraInput
,
cameraDevice
:
camera
.
CameraDevice
):
void
{
cameraInput
.
on
(
'
error
'
,
cameraDevice
,
(
error
:
BusinessError
)
=>
{
console
.
log
(
`Camera input error code:
${
error
.
code
}
`
);
})
});
}
```
### off('error')
...
...
@@ -1275,8 +1434,11 @@ off(type: 'error', camera:CameraDevice, callback?: ErrorCallback): void
**示例:**
```
js
cameraInput
.
off
(
'
error
'
,
cameraDevice
)
```
ts
function
unregisterCameraInputError
(
cameraInput
:
camera
.
CameraInput
,
cameraDevice
:
camera
.
CameraDevice
):
void
{
cameraInput
.
off
(
'
error
'
,
cameraDevice
);
}
```
## FlashMode
...
...
@@ -1371,12 +1533,17 @@ beginConfig(): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
beginConfig
(
captureSession
:
camera
.
CaptureSession
):
void
{
try
{
captureSession
.
beginConfig
();
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The beginConfig call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -1405,14 +1572,18 @@ commitConfig(callback: AsyncCallback\<void\>): void
**示例:**
```
js
captureSession
.
commitConfig
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
commitConfig
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
commitConfig
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
log
(
'
Failed to commitConfig
'
+
err
.
code
);
return
;
console
.
error
(
`The commitConfig call failed. error code:
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the commit config success.
'
);
});
});
}
```
### commitConfig
...
...
@@ -1440,13 +1611,17 @@ commitConfig(): Promise\<void\>
**示例:**
```
js
captureSession
.
commitConfig
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
commitConfig
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
commitConfig
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate the commit config success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
// 失败返回错误码error.code并处理
console
.
log
(
'
Failed to commitConfig
'
+
err
.
code
);
});
console
.
error
(
`The commitConfig call failed. error code:
${
err
.
code
}
`
);
});
}
```
### addInput
...
...
@@ -1480,12 +1655,17 @@ addInput(cameraInput: CameraInput): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
addInput
(
captureSession
:
camera
.
CaptureSession
,
cameraInput
:
camera
.
CameraInput
):
void
{
try
{
captureSession
.
addInput
(
cameraInput
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The addInput call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -1520,12 +1700,17 @@ removeInput(cameraInput: CameraInput): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
removeInput
(
captureSession
:
camera
.
CaptureSession
,
cameraInput
:
camera
.
CameraInput
):
void
{
try
{
captureSession
.
removeInput
(
cameraInput
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The removeInput call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -1560,12 +1745,17 @@ addOutput(cameraOutput: CameraOutput): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
addOutput
(
captureSession
:
camera
.
CaptureSession
,
cameraOutput
:
camera
.
CameraOutput
):
void
{
try
{
captureSession
.
addOutput
(
cameraOutput
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The addOutput call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -1600,12 +1790,17 @@ removeOutput(cameraOutput: CameraOutput): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
removeOutput
(
captureSession
:
camera
.
CaptureSession
,
previewOutput
:
camera
.
PreviewOutput
):
void
{
try
{
captureSession
.
removeOutput
(
previewOutput
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
log
(
`The removeOutput call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -1634,14 +1829,18 @@ start\(callback: AsyncCallback\<void\>\): void
**示例:**
```
js
captureSession
.
start
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startCaptureSession
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
start
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to start the session
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to start the session
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the session start success.
'
);
});
});
}
```
### start
...
...
@@ -1669,12 +1868,16 @@ start\(\): Promise\<void\>
**示例:**
```
js
captureSession
.
start
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startCaptureSession
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
start
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate the session start success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
error
(
`Failed to start the session
${
err
.
code
}
`
);
});
});
}
```
### stop
...
...
@@ -1701,14 +1904,18 @@ stop\(callback: AsyncCallback\<void\>\): void
**示例:**
```
js
captureSession
.
stop
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopCaptureSession
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
stop
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to stop the session
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to stop the session
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the session stop success.
'
);
});
});
}
```
### stop
...
...
@@ -1735,12 +1942,16 @@ stop(): Promise\<void\>
**示例:**
```
js
captureSession
.
stop
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopCaptureSession
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
stop
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate the session stop success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
error
(
`Failed to stop the session
${
err
.
code
}
`
);
});
});
}
```
### release
...
...
@@ -1767,14 +1978,18 @@ release\(callback: AsyncCallback\<void\>\): void
**示例:**
```
js
captureSession
.
release
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releaseCaptureSession
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
release
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to release the CaptureSession instance
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to release the CaptureSession instance
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate that the CaptureSession instance is released successfully.
'
);
});
});
}
```
### release
...
...
@@ -1801,12 +2016,16 @@ release(): Promise\<void\>
**示例:**
```
js
captureSession
.
release
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releaseCaptureSession
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
release
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that the CaptureSession instance is released successfully.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
error
(
`Failed to release the CaptureSession instance
${
err
.
code
}
`
);
});
});
}
```
### hasFlash
...
...
@@ -1833,12 +2052,19 @@ hasFlash(): boolean
**示例:**
```
js
try
{
let
status
=
captureSession
.
hasFlash
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
hasFlash
(
captureSession
:
camera
.
CaptureSession
):
boolean
{
let
status
:
boolean
=
false
;
try
{
status
=
captureSession
.
hasFlash
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The hasFlash call failed. error code:
${
err
.
code
}
`
);
}
return
status
;
}
```
...
...
@@ -1872,12 +2098,19 @@ isFlashModeSupported(flashMode: FlashMode): boolean
**示例:**
```
js
try
{
let
status
=
captureSession
.
isFlashModeSupported
(
camera
.
FlashMode
.
FLASH_MODE_AUTO
);
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
isFlashModeSupported
(
captureSession
:
camera
.
CaptureSession
):
boolean
{
let
status
:
boolean
=
false
;
try
{
status
=
captureSession
.
isFlashModeSupported
(
camera
.
FlashMode
.
FLASH_MODE_AUTO
);
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The isFlashModeSupported call failed. error code:
${
err
.
code
}
`
);
}
return
status
;
}
```
...
...
@@ -1916,12 +2149,17 @@ setFlashMode(flashMode: FlashMode): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setFlashMode
(
captureSession
:
camera
.
CaptureSession
):
void
{
try
{
captureSession
.
setFlashMode
(
camera
.
FlashMode
.
FLASH_MODE_AUTO
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setFlashMode call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -1949,12 +2187,19 @@ getFlashMode(): FlashMode
**示例:**
```
js
try
{
let
flashMode
=
captureSession
.
getFlashMode
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getFlashMode
(
captureSession
:
camera
.
CaptureSession
):
camera
.
FlashMode
{
let
flashMode
:
camera
.
FlashMode
;
try
{
flashMode
=
captureSession
.
getFlashMode
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getFlashMode call failed.error code:
${
err
.
code
}
`
);
}
return
flashMode
;
}
```
...
...
@@ -1988,12 +2233,19 @@ isExposureModeSupported(aeMode: ExposureMode): boolean;
**示例:**
```
js
try
{
let
isSupported
=
captureSession
.
isExposureModeSupported
(
camera
.
ExposureMode
.
EXPOSURE_MODE_LOCKED
);
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
isExposureModeSupported
(
captureSession
:
camera
.
CaptureSession
):
boolean
{
let
isSupported
:
boolean
;
try
{
isSupported
=
captureSession
.
isExposureModeSupported
(
camera
.
ExposureMode
.
EXPOSURE_MODE_LOCKED
);
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The isExposureModeSupported call failed. error code:
${
err
.
code
}
`
);
}
return
isSupported
;
}
```
...
...
@@ -2021,12 +2273,19 @@ getExposureMode(): ExposureMode
**示例:**
```
js
try
{
let
exposureMode
=
captureSession
.
getExposureMode
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getExposureMode
(
captureSession
:
camera
.
CaptureSession
):
camera
.
ExposureMode
{
let
exposureMode
:
camera
.
ExposureMode
;
try
{
exposureMode
=
captureSession
.
getExposureMode
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getExposureMode call failed. error code:
${
err
.
code
}
`
);
}
return
exposureMode
;
}
```
...
...
@@ -2060,12 +2319,17 @@ setExposureMode(aeMode: ExposureMode): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setExposureMode
(
captureSession
:
camera
.
CaptureSession
):
void
{
try
{
captureSession
.
setExposureMode
(
camera
.
ExposureMode
.
EXPOSURE_MODE_LOCKED
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setExposureMode call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -2093,12 +2357,19 @@ getMeteringPoint(): Point
**示例:**
```
js
try
{
let
exposurePoint
=
captureSession
.
getMeteringPoint
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getMeteringPoint
(
captureSession
:
camera
.
CaptureSession
):
camera
.
Point
{
let
exposurePoint
:
camera
.
Point
;
try
{
exposurePoint
=
captureSession
.
getMeteringPoint
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getMeteringPoint call failed. error code:
${
err
.
code
}
`
);
}
return
exposurePoint
;
}
```
...
...
@@ -2135,13 +2406,18 @@ setMeteringPoint(point: Point): void
**示例:**
```
js
const
exposurePoint
=
{
x
:
1
,
y
:
1
};
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setMeteringPoint
(
captureSession
:
camera
.
CaptureSession
):
void
{
const
exposurePoint
:
camera
.
Point
=
{
x
:
1
,
y
:
1
};
try
{
captureSession
.
setMeteringPoint
(
exposurePoint
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setMeteringPoint call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -2169,12 +2445,19 @@ getExposureBiasRange(): Array\<number\>
**示例:**
```
js
try
{
let
biasRangeArray
=
captureSession
.
getExposureBiasRange
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getExposureBiasRange
(
captureSession
:
camera
.
CaptureSession
):
Array
<
number
>
{
let
biasRangeArray
:
Array
<
number
>
;
try
{
biasRangeArray
=
captureSession
.
getExposureBiasRange
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getExposureBiasRange call failed. error code:
${
err
.
code
}
`
);
}
return
biasRangeArray
;
}
```
...
...
@@ -2204,13 +2487,18 @@ setExposureBias(exposureBias: number): void
**示例:**
```
js
let
exposureBias
=
biasRangeArray
[
0
];
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setExposureBias
(
captureSession
:
camera
.
CaptureSession
,
biasRangeArray
:
Array
<
number
>
):
void
{
let
exposureBias
=
biasRangeArray
[
0
];
try
{
captureSession
.
setExposureBias
(
exposureBias
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setExposureBias call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -2238,12 +2526,19 @@ getExposureValue(): number
**示例:**
```
js
try
{
let
exposureValue
=
captureSession
.
getExposureValue
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getExposureValue
(
captureSession
:
camera
.
CaptureSession
):
number
{
let
exposureValue
:
number
;
try
{
exposureValue
=
captureSession
.
getExposureValue
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getExposureValue call failed. error code:
${
err
.
code
}
`
);
}
return
exposureValue
;
}
```
...
...
@@ -2277,12 +2572,19 @@ isFocusModeSupported(afMode: FocusMode): boolean
**示例:**
```
js
try
{
let
status
=
captureSession
.
isFocusModeSupported
(
camera
.
FocusMode
.
FOCUS_MODE_AUTO
);
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
isFocusModeSupported
(
captureSession
:
camera
.
CaptureSession
):
boolean
{
let
status
:
boolean
=
false
;
try
{
status
=
captureSession
.
isFocusModeSupported
(
camera
.
FocusMode
.
FOCUS_MODE_AUTO
);
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The isFocusModeSupported call failed. error code:
${
err
.
code
}
`
);
}
return
status
;
}
```
...
...
@@ -2318,12 +2620,17 @@ setFocusMode(afMode: FocusMode): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setFocusMode
(
captureSession
:
camera
.
CaptureSession
):
void
{
try
{
captureSession
.
setFocusMode
(
camera
.
FocusMode
.
FOCUS_MODE_AUTO
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setFocusMode call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -2351,12 +2658,19 @@ getFocusMode(): FocusMode
**示例:**
```
js
try
{
let
afMode
=
captureSession
.
getFocusMode
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getFocusMode
(
captureSession
:
camera
.
CaptureSession
):
camera
.
FocusMode
{
let
afMode
:
camera
.
FocusMode
;
try
{
afMode
=
captureSession
.
getFocusMode
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getFocusMode call failed. error code:
${
err
.
code
}
`
);
}
return
afMode
;
}
```
...
...
@@ -2393,13 +2707,18 @@ setFocusPoint(point: Point): void
**示例:**
```
js
const
Point1
=
{
x
:
1
,
y
:
1
};
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setFocusPoint
(
captureSession
:
camera
.
CaptureSession
):
void
{
const
Point1
:
camera
.
Point
=
{
x
:
1
,
y
:
1
};
try
{
captureSession
.
setFocusPoint
(
Point1
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setFocusPoint call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -2427,12 +2746,19 @@ getFocusPoint(): Point
**示例:**
```
js
try
{
let
point
=
captureSession
.
getFocusPoint
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getFocusPoint
(
captureSession
:
camera
.
CaptureSession
):
camera
.
Point
{
let
point
:
camera
.
Point
;
try
{
point
=
captureSession
.
getFocusPoint
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getFocusPoint call failed. error code:
${
err
.
code
}
`
);
}
return
point
;
}
```
...
...
@@ -2460,12 +2786,19 @@ getFocalLength(): number
**示例:**
```
js
try
{
let
focalLength
=
captureSession
.
getFocalLength
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getFocalLength
(
captureSession
:
camera
.
CaptureSession
):
number
{
let
focalLength
:
number
;
try
{
focalLength
=
captureSession
.
getFocalLength
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getFocalLength call failed. error code:
${
err
.
code
}
`
);
}
return
focalLength
;
}
```
...
...
@@ -2493,12 +2826,19 @@ getZoomRatioRange(): Array\<number\>
**示例:**
```
js
try
{
let
zoomRatioRange
=
captureSession
.
getZoomRatioRange
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getZoomRatioRange
(
captureSession
:
camera
.
CaptureSession
):
Array
<
number
>
{
let
zoomRatioRange
:
Array
<
number
>
;
try
{
zoomRatioRange
=
captureSession
.
getZoomRatioRange
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getZoomRatioRange call failed. error code:
${
err
.
code
}
`
);
}
return
zoomRatioRange
;
}
```
...
...
@@ -2532,13 +2872,21 @@ setZoomRatio(zoomRatio: number): void
**示例:**
```
js
let
zoomRatio
=
zoomRatioRange
[
0
];
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setZoomRatio
(
captureSession
:
camera
.
CaptureSession
,
zoomRatioRange
:
Array
<
number
>
):
void
{
if
(
zoomRatioRange
===
undefined
||
zoomRatioRange
.
length
<=
0
)
{
return
;
}
let
zoomRatio
=
zoomRatioRange
[
0
];
try
{
captureSession
.
setZoomRatio
(
zoomRatio
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setZoomRatio call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -2566,12 +2914,19 @@ getZoomRatio(): number
**示例:**
```
js
try
{
let
zoomRatio
=
captureSession
.
getZoomRatio
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getZoomRatio
(
captureSession
:
camera
.
CaptureSession
):
number
{
let
zoomRatio
:
number
;
try
{
zoomRatio
=
captureSession
.
getZoomRatio
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getZoomRatio call failed. error code:
${
err
.
code
}
`
);
}
return
zoomRatio
;
}
```
...
...
@@ -2605,12 +2960,19 @@ isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
**示例:**
```
js
try
{
let
isSupported
=
captureSession
.
isVideoStabilizationModeSupported
(
camera
.
VideoStabilizationMode
.
OFF
);
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
isVideoStabilizationModeSupported
(
captureSession
:
camera
.
CaptureSession
):
boolean
{
let
isSupported
:
boolean
=
false
;
try
{
isSupported
=
captureSession
.
isVideoStabilizationModeSupported
(
camera
.
VideoStabilizationMode
.
OFF
);
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The isVideoStabilizationModeSupported call failed. error code:
${
err
.
code
}
`
);
}
return
isSupported
;
}
```
...
...
@@ -2638,12 +3000,19 @@ getActiveVideoStabilizationMode(): VideoStabilizationMode
**示例:**
```
js
try
{
let
vsMode
=
captureSession
.
getActiveVideoStabilizationMode
();
}
catch
(
error
)
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
getActiveVideoStabilizationMode
(
captureSession
:
camera
.
CaptureSession
):
camera
.
VideoStabilizationMode
{
let
vsMode
:
camera
.
VideoStabilizationMode
;
try
{
vsMode
=
captureSession
.
getActiveVideoStabilizationMode
();
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The getActiveVideoStabilizationMode call failed. error code:
${
err
.
code
}
`
);
}
return
vsMode
;
}
```
...
...
@@ -2677,12 +3046,17 @@ setVideoStabilizationMode(mode: VideoStabilizationMode): void
**示例:**
```
js
try
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setVideoStabilizationMode
(
captureSession
:
camera
.
CaptureSession
):
void
{
try
{
captureSession
.
setVideoStabilizationMode
(
camera
.
VideoStabilizationMode
.
OFF
);
}
catch
(
error
)
{
}
catch
(
error
)
{
// 失败返回错误码error.code并处理
console
.
log
(
error
.
code
);
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setVideoStabilizationMode call failed. error code:
${
err
.
code
}
`
);
}
}
```
### getSupportedFilters
...
...
@@ -2711,8 +3085,11 @@ getSupportedFilters(): Array\<number>
**示例:**
```
js
let
FilterTypes
=
captureSession
.
getSupportedFilters
();
```
ts
function
getSupportedFilters
(
captureSession
:
camera
.
CaptureSession
):
Array
<
camera
.
FilterType
>
{
let
filterTypes
:
Array
<
camera
.
FilterType
>
=
captureSession
.
getSupportedFilters
();
return
filterTypes
;
}
```
### setFilter
...
...
@@ -2741,10 +3118,12 @@ setFilter(filter: number): void
**示例:**
```
js
let
FilterTypes
=
captureSession
.
getSupportedFilters
();
if
(
!
FilterTypes
.
empty
())
{
captureSession
.
setFilter
(
FilterTypes
[
0
]);
```
ts
function
setFilter
(
captureSession
:
camera
.
CaptureSession
,
filterTypes
:
Array
<
camera
.
FilterType
>
):
void
{
if
(
filterTypes
===
undefined
||
filterTypes
.
length
<=
0
)
{
return
;
}
captureSession
.
setFilter
(
filterTypes
[
0
]);
}
```
...
...
@@ -2774,8 +3153,11 @@ if (!FilterTypes.empty()) {
**示例:**
```
js
let
FilterType
=
captureSession
.
getFilter
();
```
ts
function
getFilter
(
captureSession
:
camera
.
CaptureSession
):
number
{
let
filterType
:
number
=
captureSession
.
getFilter
();
return
filterType
;
}
```
### getSupportedBeautyTypes
...
...
@@ -2803,8 +3185,11 @@ getSupportedBeautyTypes(): Array<[BeautyType](#beautytype)>
**示例:**
```
js
let
FilterTypes
=
captureSession
.
getSupportedBeautyTypes
();
```
ts
function
getSupportedBeautyTypes
(
captureSession
:
camera
.
CaptureSession
):
Array
<
camera
.
BeautyType
>
{
let
beautyTypes
:
Array
<
camera
.
BeautyType
>
=
captureSession
.
getSupportedBeautyTypes
();
return
beautyTypes
;
}
```
### getSupportedBeautyRange
...
...
@@ -2838,10 +3223,14 @@ getSupportedBeautyRange(type: BeautyType): Array<number>
**示例:**
```
js
let
beautyTypes
=
captureSession
.
getSupportedBeautyTypes
();
if
(
!
beautyTypes
.
empty
())
{
let
nums
=
captureSession
.
getSupportedBeautyRange
(
beautyTypes
[
0
]);
```
ts
function
getSupportedBeautyRange
(
captureSession
:
camera
.
CaptureSession
):
Array
<
number
>
{
let
beautyTypes
:
Array
<
camera
.
BeautyType
>
=
captureSession
.
getSupportedBeautyTypes
();
if
(
beautyTypes
===
undefined
||
beautyTypes
.
length
<=
0
)
{
return
null
;
}
let
beautyLevels
:
Array
<
number
>
=
captureSession
.
getSupportedBeautyRange
(
beautyTypes
[
0
]);
return
beautyLevels
;
}
```
...
...
@@ -2872,14 +3261,17 @@ setBeauty(type: BeautyType, value: number): void
**示例:**
```
js
let
beautyTypes
=
captureSession
.
getSupportedBeautyTypes
();
let
beautyLevels
;
if
(
!
beautyTypes
.
empty
())
{
beautyLevels
=
captureSession
.
getSupportedBeautyRange
(
beautyTypes
[
0
]);
}
if
(
!
beautyTypes
.
empty
()
&&
beautyLevels
.
empty
())
{
captureSession
.
setBeauty
(
beautyTypes
[
0
],
beautyLevels
[
0
]);
```
ts
function
setBeauty
(
captureSession
:
camera
.
CaptureSession
):
void
{
let
beautyTypes
:
Array
<
camera
.
BeautyType
>
=
captureSession
.
getSupportedBeautyTypes
();
if
(
beautyTypes
===
undefined
||
beautyTypes
.
length
<=
0
)
{
return
null
;
}
let
beautyLevels
:
Array
<
number
>
=
captureSession
.
getSupportedBeautyRange
(
beautyTypes
[
0
]);
if
(
beautyLevels
===
undefined
||
beautyLevels
.
length
<=
0
)
{
return
null
;
}
captureSession
.
setBeauty
(
beautyTypes
[
0
],
beautyLevels
[
0
]);
}
```
...
...
@@ -2914,16 +3306,20 @@ getBeauty(type: BeautyType): number
**示例:**
```
js
let
BeautyTypes
=
captureSession
.
getSupportedBeautyTypes
();
let
beautyLevels
;
if
(
!
BeautyTypes
.
empty
())
{
beautyLevels
=
captureSession
.
getSupportedBeautyRange
(
BeautyTypes
[
0
]);
}
if
(
!
BeautyTypes
.
empty
()
&&
beautyLevels
.
empty
())
{
captureSession
.
setBeauty
(
BeautyTypes
[
0
],
beautyLevels
[
0
]);
```
ts
function
getBeauty
(
captureSession
:
camera
.
CaptureSession
):
number
{
let
beautyTypes
=
captureSession
.
getSupportedBeautyTypes
();
if
(
beautyTypes
===
undefined
||
beautyTypes
.
length
<=
0
)
{
return
null
;
}
let
beautyLevels
:
Array
<
number
>
=
captureSession
.
getSupportedBeautyRange
(
BeautyTypes
[
0
]);
if
(
beautyLevels
===
undefined
||
beautyLevels
.
length
<=
0
)
{
return
null
;
}
captureSession
.
setBeauty
(
beautyTypes
[
0
],
beautyLevels
[
0
]);
let
beautyLevel
:
number
=
captureSession
.
getBeauty
(
beautyTypes
[
0
]);
return
beautyLevel
;
}
let
beautyLevel
=
captureSession
.
getBeauty
(
BeautyTypes
[
0
]);
```
### on('focusStateChange')
...
...
@@ -2943,10 +3339,14 @@ on(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void
**示例:**
```
js
captureSession
.
on
(
'
focusStateChange
'
,
(
err
,
focusState
)
=>
{
console
.
log
(
`Focus state :
${
focusState
}
`
);
})
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerFocusStateChange
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
on
(
'
focusStateChange
'
,
(
err
:
BusinessError
,
focusState
:
camera
.
FocusState
)
=>
{
console
.
log
(
`Focus state:
${
focusState
}
`
);
});
}
```
### off('focusStateChange')
...
...
@@ -2966,8 +3366,10 @@ off(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void
**示例:**
```
js
captureSession
.
off
(
'
focusStateChange
'
)
```
ts
function
unregisterFocusStateChange
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
off
(
'
focusStateChange
'
);
}
```
### on('error')
...
...
@@ -2987,10 +3389,14 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```
js
captureSession
.
on
(
'
error
'
,
(
error
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerCaptureSessionError
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
on
(
'
error
'
,
(
error
:
BusinessError
)
=>
{
console
.
log
(
`Capture session error code:
${
error
.
code
}
`
);
})
});
}
```
### off('error')
...
...
@@ -3010,8 +3416,10 @@ off(type: 'error', callback?: ErrorCallback): void
**示例:**
```
js
captureSession
.
off
(
'
error
'
)
```
ts
function
unregisterCaptureSessionError
(
captureSession
:
camera
.
CaptureSession
):
void
{
captureSession
.
off
(
'
error
'
);
}
```
## PortraitSession
...
...
@@ -3043,8 +3451,11 @@ getSupportedPortraitEffects(): Array<[PortraitEffect](#portraiteffect)>
**示例:**
```
js
let
portraitEffect
=
PortraitSession
.
getSupportedPortraitEffects
();
```
ts
function
getSupportedPortraitEffects
(
portraitSession
:
camera
.
PortraitSession
):
Array
<
camera
.
PortraitEffect
>
{
let
portraitEffect
:
Array
<
camera
.
PortraitEffect
>
=
portraitSession
.
getSupportedPortraitEffects
();
return
portraitEffect
;
}
```
### setPortraitEffect
...
...
@@ -3072,10 +3483,19 @@ setPortraitEffect(effect: PortraitEffect): void
**示例:**
```
js
let
portraitEffects
=
PortraitSession
.
getSupportedPortraitEffects
();
if
(
!
portraitEffects
.
empty
())
{
PortraitSession
.
setPortraitEffect
(
portraitEffects
[
0
]);
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
setPortraitEffect
(
portraitSession
:
camera
.
PortraitSession
,
portraitEffects
:
Array
<
camera
.
PortraitEffect
>
):
void
{
if
(
portraitEffects
===
undefined
||
portraitEffects
.
length
<=
0
)
{
return
;
}
try
{
portraitSession
.
setPortraitEffect
(
portraitEffects
[
0
]);
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The setPortraitEffect call failed. error code:
${
err
.
code
}
`
);
}
}
```
### getPortraitEffect
...
...
@@ -3104,10 +3524,10 @@ getPortraitEffect(): PortraitEffect
**示例:**
```
j
s
let
portraitEffects
=
PortraitSession
.
getSupportedPortraitEffects
();
if
(
!
portraitEffects
.
empty
())
{
PortraitSession
.
setPortraitEffect
(
portraitEffects
[
0
])
;
```
t
s
function
getSupportedPortraitEffects
(
portraitSession
:
camera
.
PortraitSession
):
Array
<
camera
.
PortraitEffect
>
{
let
portraitEffects
:
Array
<
camera
.
PortraitEffect
>
=
portraitSession
.
getSupportedPortraitEffects
();
return
portraitEffects
;
}
```
...
...
@@ -3143,14 +3563,18 @@ start(callback: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
start
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startPreviewOutput
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
start
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to start the previewOutput.
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to start the previewOutput.
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback returned with previewOutput started.
'
);
})
});
}
```
### start
...
...
@@ -3177,12 +3601,16 @@ start(): Promise\<void\>
**示例:**
```
js
previewOutput
.
start
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startPreviewOutput
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
start
().
then
(()
=>
{
console
.
log
(
'
Promise returned with previewOutput started.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to previewOutput start
'
+
err
.
code
);
});
});
}
```
### stop
...
...
@@ -3201,14 +3629,18 @@ stop(callback: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
stop
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopPreviewOutput
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
stop
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to stop the previewOutput.
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to stop the previewOutput.
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback returned with previewOutput stopped.
'
);
})
})
}
```
### stop
...
...
@@ -3227,12 +3659,16 @@ stop(): Promise\<void\>
**示例:**
```
js
previewOutput
.
stop
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopPreviewOutput
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
stop
().
then
(()
=>
{
console
.
log
(
'
Callback returned with previewOutput stopped.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to previewOutput stop
'
+
err
.
code
);
});
});
}
```
### release
...
...
@@ -3259,14 +3695,18 @@ release(callback: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
release
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releasePreviewOutput
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
release
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to release the PreviewOutput instance
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to release the PreviewOutput instance
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate that the PreviewOutput instance is released successfully.
'
);
});
});
}
```
### release
...
...
@@ -3293,12 +3733,16 @@ release(): Promise\<void\>
**示例:**
```
js
previewOutput
.
release
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releasePreviewOutput
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
release
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that the PreviewOutput instance is released successfully.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to previewOutput release
'
+
err
.
code
);
});
});
}
```
### on('frameStart')
...
...
@@ -3318,10 +3762,12 @@ on(type: 'frameStart', callback: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
on
(
'
frameStart
'
,
()
=>
{
```
ts
function
registerPreviewOutputFrameStart
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
on
(
'
frameStart
'
,
()
=>
{
console
.
log
(
'
Preview frame started
'
);
})
});
}
```
### off('frameStart')
...
...
@@ -3341,8 +3787,10 @@ off(type: 'frameStart', callback?: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
off
(
'
frameStart
'
)
```
ts
function
unregisterPreviewOutputFrameStart
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
off
(
'
frameStart
'
);
}
```
### on('frameEnd')
...
...
@@ -3362,10 +3810,12 @@ on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
on
(
'
frameEnd
'
,
()
=>
{
```
ts
function
registerPreviewOutputFrameEnd
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
on
(
'
frameEnd
'
,
()
=>
{
console
.
log
(
'
Preview frame ended
'
);
})
});
}
```
### off('frameEnd')
...
...
@@ -3385,8 +3835,10 @@ off(type: 'frameEnd', callback?: AsyncCallback\<void\>): void
**示例:**
```
js
previewOutput
.
off
(
'
frameEnd
'
)
```
ts
function
unregisterPreviewOutputFrameEnd
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
off
(
'
frameEnd
'
);
}
```
### on('error')
...
...
@@ -3406,10 +3858,14 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```
js
previewOutput
.
on
(
'
error
'
,
(
previewOutputError
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerPreviewOutputError
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
on
(
'
error
'
,
(
previewOutputError
:
BusinessError
)
=>
{
console
.
log
(
`Preview output error code:
${
previewOutputError
.
code
}
`
);
})
})
}
```
### off('error')
...
...
@@ -3429,8 +3885,10 @@ off(type: 'error', callback?: ErrorCallback): void
**示例:**
```
js
previewOutput
.
off
(
'
error
'
)
```
ts
function
unregisterPreviewOutputError
(
previewOutput
:
camera
.
PreviewOutput
):
void
{
previewOutput
.
off
(
'
error
'
);
}
```
### addDeferredSurface
...
...
@@ -3459,17 +3917,19 @@ addDeferredSurface(surfaceId: string): void
**示例:**
```
js
function
async
preview
(
context
:
Context
,
cameraInfo
:
camera
.
Device
,
previewProfile
:
camera
.
Profile
,
photoProfile
:
camera
.
Profile
,
surfaceId
:
string
):
Promise
<
void
>
{
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
async
function
preview
(
context
:
featureAbility
.
Context
,
cameraInfo
:
camera
.
CameraDevice
,
previewProfile
:
camera
.
Profile
,
photoProfile
:
camera
.
Profile
,
surfaceId
:
string
):
Promise
<
void
>
{
const
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
const
cameraInput
camera
.
CameraInput
=
await
cameraManager
.
createCameraInput
(
cameraInfo
)
const
cameraInput
:
camera
.
CameraInput
=
cameraManager
.
createCameraInput
(
cameraInfo
)
const
previewOutput
:
camera
.
PreviewOutput
=
await
cameraManager
.
createDeferredPreviewOutput
(
previewProfile
);
const
photoOutput
:
camera
.
PhotoOutput
=
await
cameraManager
.
createPhotoOutput
(
photoProfile
);
const
photoOutput
:
camera
.
PhotoOutput
=
cameraManager
.
createPhotoOutput
(
photoProfile
);
const
session
:
camera
.
CaptureSession
=
await
this
.
mCameraManager
.
createCaptureSession
();
await
session
.
beginConfig
();
await
session
.
addInput
(
cameraInput
);
await
session
.
addOutput
(
previewOutput
);
await
session
.
addOutput
(
photoOutput
);
session
.
beginConfig
();
session
.
addInput
(
cameraInput
);
session
.
addOutput
(
previewOutput
);
session
.
addOutput
(
photoOutput
);
await
session
.
commitConfig
();
await
session
.
start
();
await
previewOutput
.
addDeferredSurface
(
surfaceId
);
...
...
@@ -3556,14 +4016,18 @@ capture(callback: AsyncCallback\<void\>): void
**示例:**
```
js
photoOutput
.
capture
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
capture
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
capture
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to capture the photo
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to capture the photo
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the photo capture request success.
'
);
});
});
}
```
### capture
...
...
@@ -3591,12 +4055,16 @@ capture(): Promise\<void\>
**示例:**
```
js
photoOutput
.
capture
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
capture
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
capture
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that photo capture request success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to photoOutput capture
'
+
err
.
code
);
});
});
}
```
### capture
...
...
@@ -3626,25 +4094,29 @@ capture(setting: PhotoCaptureSetting, callback: AsyncCallback\<void\>): void
**示例:**
```
js
let
captureLocation
=
{
latitude
:
0
,
longitude
:
0
,
altitude
:
0
,
}
let
settings
=
{
quality
:
camera
.
QualityLevel
.
QUALITY_LEVEL_LOW
,
rotation
:
camera
.
ImageRotation
.
ROTATION_0
,
location
:
captureLocation
,
mirror
:
false
}
photoOutput
.
capture
(
settings
,
(
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
capture
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
let
captureLocation
:
camera
.
Location
=
{
latitude
:
0
,
longitude
:
0
,
altitude
:
0
,
}
let
settings
:
camera
.
PhotoCaptureSetting
=
{
quality
:
camera
.
QualityLevel
.
QUALITY_LEVEL_LOW
,
rotation
:
camera
.
ImageRotation
.
ROTATION_0
,
location
:
captureLocation
,
mirror
:
false
}
photoOutput
.
capture
(
settings
,
(
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to capture the photo
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to capture the photo
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the photo capture request success.
'
);
});
});
}
```
### capture
...
...
@@ -3679,23 +4151,27 @@ capture(setting?: PhotoCaptureSetting): Promise\<void\>
**示例:**
```
js
let
captureLocation
=
{
latitude
:
0
,
longitude
:
0
,
altitude
:
0
,
}
let
settings
=
{
quality
:
camera
.
QualityLevel
.
QUALITY_LEVEL_LOW
,
rotation
:
camera
.
ImageRotation
.
ROTATION_0
,
location
:
captureLocation
,
mirror
:
false
}
photoOutput
.
capture
(
settings
).
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
capture
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
let
captureLocation
:
camera
.
Location
=
{
latitude
:
0
,
longitude
:
0
,
altitude
:
0
,
}
let
settings
:
camera
.
PhotoCaptureSetting
=
{
quality
:
camera
.
QualityLevel
.
QUALITY_LEVEL_LOW
,
rotation
:
camera
.
ImageRotation
.
ROTATION_0
,
location
:
captureLocation
,
mirror
:
false
}
photoOutput
.
capture
(
settings
).
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that photo capture request success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to photoOutput capture
'
+
err
.
code
);
});
});
}
```
### isMirrorSupported
...
...
@@ -3714,8 +4190,11 @@ isMirrorSupported(): boolean
**示例:**
```
js
let
isSupported
=
photoOutput
.
isMirrorSupported
();
```
ts
function
isMirrorSupported
(
photoOutput
:
camera
.
PhotoOutput
):
boolean
{
let
isSupported
:
boolean
=
photoOutput
.
isMirrorSupported
();
return
isSupported
;
}
```
### release
...
...
@@ -3742,14 +4221,18 @@ release(callback: AsyncCallback\<void\>): void
**示例:**
```
js
photoOutput
.
release
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releasePhotoOutput
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
release
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to release the PreviewOutput instance
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to release the PreviewOutput instance
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate that the PreviewOutput instance is released successfully.
'
);
});
});
}
```
### release
...
...
@@ -3776,12 +4259,16 @@ release(): Promise\<void\>
**示例:**
```
js
photoOutput
.
release
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releasePhotoOutput
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
release
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that the PreviewOutput instance is released successfully.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to photoOutput release
'
+
err
.
code
);
});
});
}
```
### on('captureStart')
...
...
@@ -3801,10 +4288,14 @@ on(type: 'captureStart', callback: AsyncCallback\<number\>): void
**示例:**
```
js
photoOutput
.
on
(
'
captureStart
'
,
(
err
,
captureId
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerPhotoOutputCaptureStart
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
on
(
'
captureStart
'
,
(
err
:
BusinessError
,
captureId
:
number
)
=>
{
console
.
log
(
`photo capture stated, captureId :
${
captureId
}
`
);
})
});
}
```
### off('captureStart')
...
...
@@ -3824,8 +4315,10 @@ off(type: 'captureStart', callback?: AsyncCallback\<number\>): void
**示例:**
```
js
photoOutput
.
off
(
'
captureStart
'
)
```
ts
function
unregisterPhotoOutputCaptureStart
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
off
(
'
captureStart
'
);
}
```
### on('frameShutter')
...
...
@@ -3845,11 +4338,15 @@ on(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void
**示例:**
```
js
photoOutput
.
on
(
'
frameShutter
'
,
(
err
,
frameShutterInfo
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerPhotoOutputFrameShutter
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
on
(
'
frameShutter
'
,
(
err
:
BusinessError
,
frameShutterInfo
:
camera
.
FrameShutterInfo
)
=>
{
console
.
log
(
`photo capture end, captureId :
${
frameShutterInfo
.
captureId
}
`
);
console
.
log
(
`Timestamp for frame :
${
frameShutterInfo
.
timestamp
}
`
);
})
});
}
```
### off('frameShutter')
...
...
@@ -3869,8 +4366,10 @@ off(type: 'frameShutter', callback?: AsyncCallback\<FrameShutterInfo\>): void
**示例:**
```
js
photoOutput
.
off
(
'
frameShutter
'
)
```
ts
function
unregisterPhotoOutputFrameShutter
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
off
(
'
frameShutter
'
);
}
```
### on('captureEnd')
...
...
@@ -3890,11 +4389,15 @@ on(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void
**示例:**
```
js
photoOutput
.
on
(
'
captureEnd
'
,
(
err
,
captureEndInfo
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerPhotoOutputCaptureEnd
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
on
(
'
captureEnd
'
,
(
err
:
BusinessError
,
captureEndInfo
:
camera
.
CaptureEndInfo
)
=>
{
console
.
log
(
`photo capture end, captureId :
${
captureEndInfo
.
captureId
}
`
);
console
.
log
(
`frameCount :
${
captureEndInfo
.
frameCount
}
`
);
})
});
}
```
### off('captureEnd')
...
...
@@ -3914,8 +4417,10 @@ off(type: 'captureEnd', callback?: AsyncCallback\<CaptureEndInfo\>): void
**示例:**
```
js
photoOutput
.
off
(
'
captureEnd
'
)
```
ts
function
unregisterPhotoOutputCaptureEnd
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
off
(
'
captureEnd
'
);
}
```
### on('error')
...
...
@@ -3935,10 +4440,14 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```
js
photoOutput
.
on
(
'
error
'
,
(
error
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerPhotoOutputError
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
on
(
'
error
'
,
(
error
:
BusinessError
)
=>
{
console
.
log
(
`Photo output error code:
${
error
.
code
}
`
);
})
});
}
```
### off('error')
...
...
@@ -3958,8 +4467,10 @@ off(type: 'error', callback?: ErrorCallback): void
**示例:**
```
js
photoOutput
.
off
(
'
error
'
)
```
ts
function
unregisterPhotoOutputError
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
photoOutput
.
off
(
'
error
'
);
}
```
### isQuickThumbnailSupported
...
...
@@ -3990,22 +4501,26 @@ isQuickThumbnailSupported(): boolean
**示例:**
```
js
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
let
cameras
=
this
.
cameraManager
.
getSupportedCameras
()
// 创建CaptureSession实例
this
.
captureSession
=
await
this
.
cameraManager
.
createCaptureSession
()
// 开始配置会话
await
this
.
captureSession
.
beginConfig
()
// 把CameraInput加入到会话
this
.
mCameraInput
=
await
this
.
cameraManager
.
createCameraInput
(
cameras
[
0
])
await
this
.
cameraInput
.
open
()
await
this
.
captureSession
.
addInput
(
this
.
cameraInput
)
// 把PhotoOutPut加入到会话
this
.
photoOutPut
=
await
this
.
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
)
await
this
.
captureSession
.
addOutput
(
this
.
photoOutPut
)
boolean
isSupported
=
this
.
photoOutPut
.
isQuickThumbnailSupported
()
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
async
function
isQuickThumbnailSupported
(
context
:
featureAbility
.
Context
,
photoProfile
:
camera
.
Profile
,
surfaceId
:
string
):
Promise
<
boolean
>
{
let
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
// 创建CaptureSession实例
let
captureSession
:
camera
.
CaptureSession
=
cameraManager
.
createCaptureSession
();
// 开始配置会话
captureSession
.
beginConfig
();
// 把CameraInput加入到会话
let
cameraInput
:
camera
.
CameraInput
=
cameraManager
.
createCameraInput
(
cameras
[
0
]);
await
cameraInput
.
open
();
captureSession
.
addInput
(
cameraInput
);
// 把photoOutput加入到会话
let
photoOutput
:
camera
.
PhotoOutput
=
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
);
captureSession
.
addOutput
(
photoOutput
);
let
isSupported
:
boolean
=
photoOutput
.
isQuickThumbnailSupported
();
return
isSupported
;
}
```
### enableQuickThumbnail
...
...
@@ -4036,24 +4551,35 @@ enableQuickThumbnail(enabled: boolean): void
**示例:**
```
js
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
let
cameras
=
this
.
cameraManager
.
getSupportedCameras
()
// 创建CaptureSession实例
this
.
captureSession
=
await
this
.
cameraManager
.
createCaptureSession
()
// 开始配置会话
await
this
.
captureSession
.
beginConfig
()
// 把CameraInput加入到会话
this
.
cameraInput
=
await
this
.
cameraManager
.
createCameraInput
(
cameras
[
0
])
await
this
.
cameraInput
.
open
()
await
this
.
captureSession
.
addInput
(
this
.
cameraInput
)
// 把PhotoOutPut加入到会话
this
.
photoOutPut
=
await
this
.
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
)
await
this
.
captureSession
.
addOutput
(
this
.
photoOutPut
)
boolean
isSupported
=
this
.
photoOutPut
.
isQuickThumbnailSupported
()
if
(
isSupported
)
{
// 使能快速缩略图
this
.
photoOutPut
.
enableQuickThumbnail
(
true
)
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
async
function
enableQuickThumbnail
(
context
:
featureAbility
.
Context
,
photoProfile
:
camera
.
Profile
,
surfaceId
:
string
):
Promise
<
void
>
{
let
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
// 创建CaptureSession实例
let
captureSession
:
camera
.
CaptureSession
=
cameraManager
.
createCaptureSession
();
// 开始配置会话
captureSession
.
beginConfig
();
// 把CameraInput加入到会话
let
cameraInput
:
camera
.
CameraInput
=
cameraManager
.
createCameraInput
(
cameras
[
0
]);
await
cameraInput
.
open
();
captureSession
.
addInput
(
cameraInput
);
// 把PhotoOutPut加入到会话
let
photoOutput
:
camera
.
PhotoOutput
=
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
);
captureSession
.
addOutput
(
photoOutput
);
let
isSupported
:
boolean
=
photoOutput
.
isQuickThumbnailSupported
();
if
(
!
isSupported
)
{
console
.
log
(
'
Quick Thumbnail is not supported to be turned on.
'
);
return
;
}
try
{
photoOutput
.
enableQuickThumbnail
(
true
);
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The enableQuickThumbnail call failed. error code:
${
err
.
code
}
`
);
}
}
```
...
...
@@ -4078,35 +4604,45 @@ on(type: 'quickThumbnail', callback: AsyncCallback\<image.PixelMap>): void
**示例:**
```
js
import
camera
from
'
@ohos.multimedia.camera
'
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
let
cameras
=
this
.
cameraManager
.
getSupportedCameras
()
// 创建CaptureSession实例
this
.
captureSession
=
await
this
.
cameraManager
.
createCaptureSession
()
// 开始配置会话
await
this
.
captureSession
.
beginConfig
()
// 把CameraInput加入到会话
this
.
cameraInput
=
await
this
.
cameraManager
.
createCameraInput
(
cameras
[
0
])
await
this
.
cameraInput
.
open
()
await
this
.
captureSession
.
addInput
(
this
.
cameraInput
)
// 把PhotoOutPut加入到会话
this
.
photoOutPut
=
await
this
.
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
)
await
this
.
captureSession
.
addOutput
(
this
.
photoOutPut
)
boolean
isSupported
=
this
.
photoOutPut
.
isQuickThumbnailSupported
()
if
(
isSupported
)
{
// 使能快速缩略图
this
.
photoOutPut
.
enableQuickThumbnail
(
true
)
}
this
.
photoOutPut
.
on
(
'
quickThumbnail
'
,
(
err
,
pixelmap
)
=>
{
if
(
err
||
pixelmap
===
undefined
)
{
Logger
.
error
(
this
.
tag
,
'
photoOutPut on thumbnail failed
'
)
return
```
ts
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
async
function
registerQuickThumbnail
(
context
:
featureAbility
.
Context
,
photoProfile
:
camera
.
Profile
,
surfaceId
:
string
):
Promise
<
void
>
{
let
cameraManager
:
camera
.
CameraManager
=
camera
.
getCameraManager
(
context
);
let
cameras
:
Array
<
camera
.
CameraDevice
>
=
cameraManager
.
getSupportedCameras
();
// 创建CaptureSession实例
let
captureSession
:
camera
.
CaptureSession
=
cameraManager
.
createCaptureSession
();
// 开始配置会话
captureSession
.
beginConfig
();
// 把CameraInput加入到会话
let
cameraInput
:
camera
.
CameraInput
=
cameraManager
.
createCameraInput
(
cameras
[
0
]);
await
cameraInput
.
open
();
captureSession
.
addInput
(
cameraInput
);
// 把PhotoOutPut加入到会话
let
photoOutput
:
camera
.
PhotoOutput
=
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
);
captureSession
.
addOutput
(
photoOutput
);
let
isSupported
:
boolean
=
photoOutput
.
isQuickThumbnailSupported
();
if
(
!
isSupported
)
{
console
.
log
(
'
Quick Thumbnail is not supported to be turned on.
'
);
return
;
}
try
{
photoOutput
.
enableQuickThumbnail
(
true
);
}
catch
(
error
)
{
let
err
=
error
as
BusinessError
;
console
.
error
(
`The enableQuickThumbnail call failed. error code:
${
err
.
code
}
`
);
}
photoOutput
.
on
(
'
quickThumbnail
'
,
(
err
:
BusinessError
,
pixelMap
:
image
.
PixelMap
)
=>
{
if
(
err
||
pixelMap
===
undefined
)
{
console
.
error
(
'
photoOutput on thumbnail failed
'
);
return
;
}
// 显示或保存pixelmap
this
.
showOrSavePicture
(
pixelmap
)
})
// 显示或保存pixelMap
// do something
})
}
```
### off('quickThumbnail')
...
...
@@ -4128,36 +4664,10 @@ off(type: 'quickThumbnail', callback?: AsyncCallback\<image.PixelMap>): void
**示例:**
```
js
import
camera
from
'
@ohos.multimedia.camera
'
this
.
cameraManager
=
camera
.
getCameraManager
(
globalThis
.
abilityContext
);
let
cameras
=
this
.
cameraManager
.
getSupportedCameras
()
// 创建CaptureSession实例
this
.
captureSession
=
await
this
.
cameraManager
.
createCaptureSession
()
// 开始配置会话
await
this
.
captureSession
.
beginConfig
()
// 把CameraInput加入到会话
this
.
cameraInput
=
await
this
.
cameraManager
.
createCameraInput
(
cameras
[
0
])
await
this
.
cameraInput
.
open
()
await
this
.
captureSession
.
addInput
(
this
.
cameraInput
)
// 把PhotoOutPut加入到会话
this
.
photoOutPut
=
await
this
.
cameraManager
.
createPhotoOutput
(
photoProfile
,
surfaceId
)
await
this
.
captureSession
.
addOutput
(
this
.
photoOutPut
)
boolean
isSupported
=
this
.
photoOutPut
.
isQuickThumbnailSupported
()
if
(
isSupported
)
{
// 使能快速缩略图
this
.
photoOutPut
.
enableQuickThumbnail
(
true
)
}
this
.
photoOutPut
.
on
(
'
quickThumbnail
'
,
(
err
,
pixelmap
)
=>
{
if
(
err
||
pixelmap
===
undefined
)
{
Logger
.
error
(
this
.
tag
,
'
photoOutPut on thumbnail failed
'
)
return
}
// 显示或保存pixelmap
this
.
showOrSavePicture
(
pixelmap
)
})
this
.
photoOutPut
.
off
(
'
quickThumbnail
'
)
```
ts
function
unregisterQuickThumbnail
(
photoOutput
:
camera
.
PhotoOutput
):
void
{
this
.
photoOutput
.
off
(
'
quickThumbnail
'
);
}
```
## FrameShutterInfo
...
...
@@ -4211,14 +4721,18 @@ start(callback: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
start
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startVideoOutput
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
start
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to start the video output
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to start the video output
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the video output start success.
'
);
});
});
}
```
### start
...
...
@@ -4246,12 +4760,16 @@ start(): Promise\<void\>
**示例:**
```
js
videoOutput
.
start
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startVideoOutput
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
start
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that start method execution success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to videoOutput start
'
+
err
.
code
);
});
});
}
```
### stop
...
...
@@ -4270,14 +4788,18 @@ stop(callback: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
stop
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopVideoOutput
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
stop
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to stop the video output
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to stop the video output
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate the video output stop success.
'
);
});
});
}
```
### stop
...
...
@@ -4296,12 +4818,16 @@ stop(): Promise\<void\>
**示例:**
```
js
videoOutput
.
stop
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopVideoOutput
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
stop
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that stop method execution success.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to videoOutput stop
'
+
err
.
code
);
});
});
}
```
### release
...
...
@@ -4328,14 +4854,18 @@ release(callback: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
release
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releaseVideoOutput
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
release
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to release the PreviewOutput instance
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to release the PreviewOutput instance
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback invoked to indicate that the PreviewOutput instance is released successfully.
'
);
});
console
.
log
(
'
Callback invoked to indicate that the videoOutput instance is released successfully.
'
);
});
}
```
### release
...
...
@@ -4362,12 +4892,16 @@ release(): Promise\<void\>
**示例:**
```
js
videoOutput
.
release
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that the PreviewOutput instance is released successfully.
'
);
}).
catch
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
releaseVideoOutput
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
release
().
then
(()
=>
{
console
.
log
(
'
Promise returned to indicate that the videoOutput instance is released successfully.
'
);
}).
catch
((
err
:
BusinessError
)
=>
{
console
.
log
(
'
Failed to videoOutput release
'
+
err
.
code
);
});
});
}
```
### on('frameStart')
...
...
@@ -4387,10 +4921,12 @@ on(type: 'frameStart', callback: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
on
(
'
frameStart
'
,
()
=>
{
```
ts
function
registerVideoOutputFrameStart
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
on
(
'
frameStart
'
,
()
=>
{
console
.
log
(
'
Video frame started
'
);
})
});
}
```
### off('frameStart')
...
...
@@ -4410,8 +4946,11 @@ off(type: 'frameStart', callback?: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
off
(
'
frameStart
'
)
```
ts
function
unregisterVideoOutputFrameStart
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
off
(
'
frameStart
'
);
}
```
### on('frameEnd')
...
...
@@ -4431,10 +4970,12 @@ on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
on
(
'
frameEnd
'
,
()
=>
{
```
ts
function
registerVideoOutputFrameEnd
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
on
(
'
frameEnd
'
,
()
=>
{
console
.
log
(
'
Video frame ended
'
);
})
});
}
```
### off('frameEnd')
...
...
@@ -4454,8 +4995,10 @@ off(type: 'frameEnd', callback?: AsyncCallback\<void\>): void
**示例:**
```
js
videoOutput
.
off
(
'
frameEnd
'
)
```
ts
function
unregisterVideoOutputFrameEnd
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
off
(
'
frameEnd
'
);
}
```
### on('error')
...
...
@@ -4475,10 +5018,14 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```
js
videoOutput
.
on
(
'
error
'
,
(
error
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerVideoOutputError
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
on
(
'
error
'
,
(
error
:
BusinessError
)
=>
{
console
.
log
(
`Video output error code:
${
error
.
code
}
`
);
})
});
}
```
### off('error')
...
...
@@ -4498,8 +5045,10 @@ off(type: 'error', callback?: ErrorCallback): void
**示例:**
```
js
videoOutput
.
off
(
'
error
'
)
```
ts
function
unregisterVideoOutputError
(
videoOutput
:
camera
.
VideoOutput
):
void
{
videoOutput
.
off
(
'
error
'
);
}
```
## MetadataOutput
...
...
@@ -4531,14 +5080,18 @@ start(callback: AsyncCallback\<void\>): void
**示例:**
```
js
metadataOutput
.
start
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startMetadataOutput
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
start
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to start metadataOutput.
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to start metadataOutput.
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback returned with metadataOutput started.
'
);
})
});
}
```
### start
...
...
@@ -4566,12 +5119,16 @@ start(): Promise\<void\>
**示例:**
```
js
metadataOutput
.
start
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
startMetadataOutput
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
start
().
then
(()
=>
{
console
.
log
(
'
Callback returned with metadataOutput started.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to metadataOutput start
'
+
err
.
code
);
});
});
}
```
### stop
...
...
@@ -4590,14 +5147,18 @@ stop(callback: AsyncCallback\<void\>): void
**示例:**
```
js
metadataOutput
.
stop
((
err
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopMetadataOutput
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
stop
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to stop the metadataOutput.
${
err
.
code
}
`
);
return
;
console
.
error
(
`Failed to stop the metadataOutput.
${
err
.
code
}
`
);
return
;
}
console
.
log
(
'
Callback returned with metadataOutput stopped.
'
);
})
})
}
```
### stop
...
...
@@ -4616,12 +5177,16 @@ stop(): Promise\<void\>
**示例:**
```
js
metadataOutput
.
stop
().
then
(()
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
stopMetadataOutput
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
stop
().
then
(()
=>
{
console
.
log
(
'
Callback returned with metadataOutput stopped.
'
);
}).
catch
((
er
r
)
=>
{
}).
catch
((
err
:
BusinessErro
r
)
=>
{
console
.
log
(
'
Failed to metadataOutput stop
'
+
err
.
code
);
});
});
}
```
### on('metadataObjectsAvailable')
...
...
@@ -4641,10 +5206,14 @@ on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObj
**示例:**
```
js
metadataOutput
.
on
(
'
metadataObjectsAvailable
'
,
(
err
,
metadataObjectArr
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerMetadataObjectsAvailable
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
on
(
'
metadataObjectsAvailable
'
,
(
err
:
BusinessError
,
metadataObjectArr
:
Array
<
camera
.
MetadataObject
>
)
=>
{
console
.
log
(
`metadata output metadataObjectsAvailable`
);
})
});
}
```
### off('metadataObjectsAvailable')
...
...
@@ -4664,8 +5233,10 @@ off(type: 'metadataObjectsAvailable', callback?: AsyncCallback\<Array\<MetadataO
**示例:**
```
js
metadataOutput
.
off
(
'
metadataObjectsAvailable
'
)
```
ts
function
unregisterMetadataObjectsAvailable
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
off
(
'
metadataObjectsAvailable
'
);
}
```
### on('error')
...
...
@@ -4685,10 +5256,14 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```
js
metadataOutput
.
on
(
'
error
'
,
(
metadataOutputError
)
=>
{
```
ts
import
{
BusinessError
}
from
'
@ohos.base
'
;
function
registerMetadataOutputError
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
on
(
'
error
'
,
(
metadataOutputError
:
BusinessError
)
=>
{
console
.
log
(
`Metadata output error code:
${
metadataOutputError
.
code
}
`
);
})
});
}
```
### off('error')
...
...
@@ -4708,8 +5283,10 @@ off(type: 'error', callback?: ErrorCallback): void
**示例:**
```
js
metadataOutput
.
off
(
'
error
'
)
```
ts
function
unregisterMetadataOutputError
(
metadataOutput
:
camera
.
MetadataOutput
):
void
{
metadataOutput
.
off
(
'
error
'
);
}
```
## MetadataObjectType
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录