harmony 鸿蒙Interface (AVScreenCaptureRecorder)

  • 2025-06-16
  • 浏览 (1)

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 鸿蒙Media Kit(媒体服务)

harmony 鸿蒙Interface (AVImageGenerator)

harmony 鸿蒙Interface (AVMetadataExtractor)

harmony 鸿蒙Interface (AVPlayer)

harmony 鸿蒙Interface (AVRecorder)

harmony 鸿蒙Interface (AVTranscoder)

harmony 鸿蒙废弃的Interface (AudioPlayer, deprecated)

harmony 鸿蒙废弃的Interface (AudioRecorder, deprecated)

harmony 鸿蒙Interface (MediaSource)

harmony 鸿蒙Interface (MediaSourceLoadingRequest)

0  赞