harmony 鸿蒙Interface (AVScreenCaptureRecorder)
Interface (AVScreenCaptureRecorder)
说明: 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
屏幕录制管理类,用于进行屏幕录制。在调用AVScreenCaptureRecorder的方法前,需要先通过createAVScreenCaptureRecorder()创建一个AVScreenCaptureRecorder实例。
init12+
init(config: AVScreenCaptureRecordConfig): Promise<void>
异步方式进行录屏初始化,设置录屏参数。通过Promise获取返回值。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
config | AVScreenCaptureRecordConfig | 是 | 配置屏幕录制的相关参数。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 异步录屏初始化方法的Promise返回值。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. Return by promise. |
5400103 | IO error. Return by promise. |
5400105 | Service died. Return by promise. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let avCaptureConfig: media.AVScreenCaptureRecordConfig = {
fd: 0, // 文件需要先有调用者创建,赋予写权限,将文件fd传给此参数。
frameWidth: 640,
frameHeight: 480
// 补充其他参数。
};
avScreenCaptureRecorder.init(avCaptureConfig).then(() => {
console.info('Succeeded in initing avScreenCaptureRecorder');
}).catch((err: BusinessError) => {
console.info('Failed to init avScreenCaptureRecorder, error: ' + err.message);
});
startRecording12+
startRecording(): Promise<void>
异步方式开始录屏。通过Promise获取返回值。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
返回值:
类型 | 说明 |
---|---|
Promise<void> | 异步开始录屏方法的Promise返回值. |
错误码:
错误码ID | 错误信息 |
---|---|
5400103 | IO error. Return by promise. |
5400105 | Service died. Return by promise. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
avScreenCaptureRecorder.startRecording().then(() => {
console.info('Succeeded in starting avScreenCaptureRecorder');
}).catch((err: BusinessError) => {
console.info('Failed to start avScreenCaptureRecorder, error: ' + err.message);
});
stopRecording12+
stopRecording(): Promise<void>
异步方式结束录屏。通过Promise获取返回值。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
返回值:
类型 | 说明 |
---|---|
Promise<void> | 异步结束录屏方法的Promise返回值。 |
错误码:
错误码ID | 错误信息 |
---|---|
5400103 | IO error. Return by promise. |
5400105 | Service died. Return by promise. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
avScreenCaptureRecorder.stopRecording().then(() => {
console.info('Succeeded in stopping avScreenCaptureRecorder');
}).catch((err: BusinessError) => {
console.info('Failed to stop avScreenCaptureRecorder, error: ' + err.message);
});
skipPrivacyMode12+
skipPrivacyMode(windowIDs: Array<number>): Promise<void>
录屏时,应用可对本应用的隐私窗口做安全豁免。通过Promise获取返回值。 如录屏时,用户在本应用进行输入密码等操作,应用不会进行黑屏处理。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
windowIDs | Array<number> | 是 | 需要豁免隐私的窗口列表,包括主窗口id和子窗口id,窗口属性获取方法可以参考窗口API引用。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 豁免隐私窗口的Promise返回值. |
错误码:
错误码ID | 错误信息 |
---|---|
5400103 | IO error. Return by promise. |
5400105 | Service died. Return by promise. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let windowIDs = [];
avScreenCaptureRecorder.skipPrivacyMode(windowIDs).then(() => {
console.info('Succeeded in skipping privacy mode');
}).catch((err: BusinessError) => {
console.info('Failed to skip privacy mode, error: ' + err.message);
});
setMicEnabled12+
setMicEnabled(enable: boolean): Promise<void>
异步方式设置麦克风开关。通过Promise获取返回值。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
enable | boolean | 是 | 麦克风开关控制,true代表麦克风打开,false代表麦克风关闭。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 异步设置麦克风开关方法的Promise返回值。 |
错误码:
错误码ID | 错误信息 |
---|---|
5400103 | IO error. Return by promise. |
5400105 | Service died. Return by promise. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
avScreenCaptureRecorder.setMicEnabled(true).then(() => {
console.info('Succeeded in setMicEnabled avScreenCaptureRecorder');
}).catch((err: BusinessError) => {
console.info('Failed to setMicEnabled avScreenCaptureRecorder, error: ' + err.message);
});
release12+
release(): Promise<void>
异步方式释放录屏。通过Promise获取返回值。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
返回值:
类型 | 说明 |
---|---|
Promise<void> | 异步释放录屏方法的Promise返回值。 |
错误码:
错误码ID | 错误信息 |
---|---|
5400103 | IO error. Return by promise. |
5400105 | Service died. Return by promise. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
avScreenCaptureRecorder.release().then(() => {
console.info('Succeeded in releasing avScreenCaptureRecorder');
}).catch((err: BusinessError) => {
console.info('Faile to release avScreenCaptureRecorder, error: ' + err.message);
});
on(‘stateChange’)12+
on(type: ‘stateChange’, callback: Callback<AVScreenCaptureStateCode>): void
订阅录屏状态切换的事件,当状态发生的时候,会通过订阅的回调通知用户。用户只能订阅一个状态切换的回调方法,重复订阅时,以最后一次订阅的回调接口为准。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 状态切换事件回调类型,支持的事件:’stateChange’。 |
callback | function | 是 | 状态切换事件回调方法,AVScreenCaptureStateCode表示切换到的状态。 |
示例:
avScreenCaptureRecorder.on('stateChange', (state: media.AVScreenCaptureStateCode) => {
console.info('avScreenCaptureRecorder stateChange to ' + state);
});
on(‘error’)12+
on(type: ‘error’, callback: ErrorCallback): void
订阅AVScreenCaptureRecorder的错误事件,用户可以根据应用自身逻辑对错误事件进行处理。用户只能订阅一个错误事件的回调方法,重复订阅时,以最后一次订阅的回调接口为准。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 错误事件回调类型,支持的事件:’error’。 |
callback | ErrorCallback | 是 | 录屏错误事件回调方法。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | permission denied. |
5400103 | IO error. Return by ErrorCallback. |
5400105 | Service died. Return by ErrorCallback. |
示例:
avScreenCaptureRecorder.on('error', (err: BusinessError) => {
console.error('avScreenCaptureRecorder error:' + err.message);
});
off(‘stateChange’)12+
off(type: ‘stateChange’, callback?: Callback<AVScreenCaptureStateCode>): void
取消订阅状态切换回调事件。用户可以指定填入状态切换的回调方法来取消订阅。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 状态切换事件回调类型,支持的事件:’stateChange’。 |
callback | function | 否 | 状态切换事件回调方法,AVScreenCaptureStateCode表示切换到的状态,不填此参数则会取消最后一次订阅事件。 |
示例:
avScreenCaptureRecorder.off('stateChange');
off(‘error’)12+
off(type: ‘error’, callback?: ErrorCallback): void
取消订阅错误回调事件。用户可以指定填入错误回调方法来取消订阅。
系统能力: SystemCapability.Multimedia.Media.AVScreenCapture
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 状态切换事件回调类型,支持的事件:’error’。 |
callback | ErrorCallback | 否 | 录屏错误事件回调方法,不填此参数则会取消最后一次订阅事件。 |
示例:
avScreenCaptureRecorder.off('error');
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Interface (AVImageGenerator)
harmony 鸿蒙Interface (AVMetadataExtractor)
harmony 鸿蒙Interface (AVPlayer)
harmony 鸿蒙Interface (AVRecorder)
harmony 鸿蒙Interface (AVTranscoder)
harmony 鸿蒙废弃的Interface (AudioPlayer, deprecated)
harmony 鸿蒙废弃的Interface (AudioRecorder, deprecated)
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦