harmony 鸿蒙@ohos.multimedia.media (媒体服务)(系统接口)

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

@ohos.multimedia.media (媒体服务)(系统接口)

媒体子系统为开发者提供一套简单且易于理解的接口,使得开发者能够方便接入系统并使用系统的媒体资源。

说明:

  • 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 当前页面仅包含本模块的系统接口,其他公开接口参见@ohos.multimedia.media (媒体服务)

导入模块

import { media } from '@kit.MediaKit';

media.createVideoRecorder9+

createVideoRecorder(callback: AsyncCallback<VideoRecorder>): void

异步方式创建视频录制实例。通过注册回调函数获取返回值。 一台设备只允许创建一个录制实例。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<VideoRecorder> 回调函数。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
202 Not system App.
5400101 No memory. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let videoRecorder: media.VideoRecorder;
media.createVideoRecorder((error: BusinessError, video: media.VideoRecorder) => {
  if (video != null) {
    videoRecorder = video;
    console.info('video createVideoRecorder success');
  } else {
    console.error(`video createVideoRecorder fail, error message:${error.message}`);
  }
});

media.createVideoRecorder9+

createVideoRecorder(): Promise<VideoRecorder>

异步方式创建视频录制实例。通过Promise获取返回值。 一台设备只允许创建一个录制实例。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<VideoRecorder> Promise对象。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400101 No memory. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let videoRecorder: media.VideoRecorder;
media.createVideoRecorder().then((video: media.VideoRecorder) => {
  if (video != null) {
    videoRecorder = video;
    console.info('video createVideoRecorder success');
  } else {
    console.error('video createVideoRecorder fail');
  }
}).catch((error: BusinessError) => {
  console.error(`video catchCallback, error message:${error.message}`);
});

media.reportAVScreenCaptureUserChoice12+

reportAVScreenCaptureUserChoice(sessionId: number, choice: string): Promise<void>

上报录屏隐私弹窗的选择结果到ScreenCapture的服务端,用于判断是否开始录屏。如果用户选择“取消”则不进行录屏,如果用户选择“确定”则开始录屏。

此接口提供给创建弹窗的系统应用调用。

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
sessionId number AVScreenCapture服务会话Id,会由AVScreenCapture拉起隐私弹窗时传给应用。
choice string 用户的选择内容,包含是否同意录屏、选择的屏幕Id和窗口Id。可见示例中JsonData样例。

返回值:

类型 说明
Promise<void> 异步返回函数执行结果。

错误码:

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed.
5400101 No memory. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { media } from '@kit.MediaKit';

class JsonData {
  public choice: string = 'true';
  public displayId: number|null = -1;
  public missionId: number|null = -1;
}
let sessionId: number = 0; // 替换成拉起此进程的sessionId。

try {
  const jsonData: JsonData = {
    choice: 'true',  // 替换成用户的选择内容。
    displayId: -1,   // 替换成用户选择的屏幕Id。
    missionId: -1,   // 替换成用户选择的窗口Id。
  }
  await media.reportAVScreenCaptureUserChoice(sessionId, JSON.stringify(jsonData));
} catch (error: BusinessError) {
  console.error(`reportAVScreenCaptureUserChoice error, error message: ${error.message}`);
}

media.getScreenCaptureMonitor18+

getScreenCaptureMonitor(): Promise<ScreenCaptureMonitor>

获取录屏监控模块实例。使用Promise异步回调。

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口。

返回值:

类型 说明
Promise<ScreenCaptureMonitor> Promise对象。可用于查询和监听系统录屏状态。
异步返回ScreenCaptureMonitor实例,失败时返回null。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档媒体错误码

错误码ID 错误信息
202 Not System App.
5400101 No memory. Return by promise.

示例:

let screenCaptureMonitor: media.ScreenCaptureMonitor;
try {
  screenCaptureMonitor = await media.getScreenCaptureMonitor();
} catch (err) {
  console.error(`getScreenCaptureMonitor failed, error message:${err.message}`);
}

media.createParallelSoundPool20+

createParallelSoundPool(maxStreams: number, audioRenderInfo: audio.AudioRendererInfo): Promise<SoundPool>

创建音频池实例,通过Promise获取返回值。

使用createSoundPool创建的音频池实例,在重复播放相同音频时,会停止之前的播放并重新开始;而使用createParallelSoundPool创建的实例,在重复播放相同音频时,不会停止之前的音频,而是并行播放。

系统能力: SystemCapability.Multimedia.Media.SoundPool

参数:

参数名 类型 必填 说明
maxStreams number soundPool实例的最大播放的流数,设置范围为1-32的正整数。
audioRenderInfo audio.AudioRendererInfo 音频播放参数信息。

返回值:

类型 说明
Promise<SoundPool> Promise对象。异步返回SoundPool实例,失败时返回null。用于音频池实例的加载播放功能。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400101 No memory. Return by promise.
202 System API error. Return by promise.

示例:

import { audio } from '@kit.AudioKit';
import { BusinessError } from '@kit.BasicServicesKit';

let soundPool: media.SoundPool;
let audioRendererInfo: audio.AudioRendererInfo = {
  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
  rendererFlags : 0
}

media.createParallelSoundPool(5, audioRendererInfo).then((soundpool_: media.SoundPool) => {
  if (soundpool_ != null) {
    soundPool = soundpool_;
    console.info('Succceeded in creating SoundPool');
  } else {
    console.error('Failed to create SoundPool');
  }
}, (error: BusinessError) => {
  console.error(`soundpool catchCallback, error message:${error.message}`);
});

PixelMapParams11+

获取视频缩略图时,输出缩略图的格式参数。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

名称 类型 可读 可写 说明
colorFormat PixelFormat 输出的缩略图颜色格式
系统接口: 该接口为系统接口

PixelFormat11+

获取视频缩略图时,输出的缩略图采用的颜色格式枚举。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

系统接口: 该接口为系统接口

名称 说明
RGB_565 2 表示RGB_565颜色格式。
RGBA_8888 3 表示RGBA_8888颜色格式。
RGB_888 5 表示RGB_888颜色格式。

AVMetadataExtractor11+

说明: 元数据获取类,用于从媒体资源中获取元数据。在调用AVMetadataExtractor的方法前,需要先通过createAVMetadataExtractor()构建一个AVMetadataExtractor实例。

getTimeByFrameIndex12+

getTimeByFrameIndex(index: number): Promise<number>

获取目标视频帧号对应的视频时间戳。仅支持MP4视频文件。

系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
index number 视频帧号。

返回值:

类型 说明
Promise<number> 时间戳的Promise返回值。单位是微秒。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
401 The parameter check failed. Return by promise.
5400102 Operation not allowed. Returned by promise.
5400106 Unsupported format. Returned by promise.

示例:

import { media } from '@kit.MediaKit';
import { BusinessError } from '@kit.BasicServicesKit';

avMetadataExtractor.getTimeByFrameIndex(0).then((timeUs: number) => {
  console.info(`Succeeded getTimeByFrameIndex timeUs: ${timeUs}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to getTimeByFrameIndex ${err.message}`);
})

getFrameIndexByTime12+

getFrameIndexByTime(timeUs: number): Promise<number>

获取目标视频时间戳对应的视频帧号。仅支持MP4视频文件。

系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
timeUs number 视频时间戳,单位:微秒。

返回值:

类型 说明
Promise<number> 视频帧号的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
401 The parameter check failed. Return by promise.
5400102 Operation not allowed. Returned by promise.
5400106 Unsupported format. Returned by promise.

示例:

import { media } from '@kit.MediaKit';
import { BusinessError } from '@kit.BasicServicesKit';

avMetadataExtractor.getFrameIndexByTime(0).then((index: number) => {
  console.info(`Succeeded getFrameIndexByTime index: ${index}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to getFrameIndexByTime ${err.message}`);
})

AVRecorder9+

音视频录制管理类,用于音视频媒体录制。在调用AVRecorder的方法前,需要先通过createAVRecorder()构建一个AVRecorder实例。

说明:

使用相机进行视频录制时,需要与相机模块配合,相机模块接口的使用详情见相机管理

isWatermarkSupported13+

isWatermarkSupported(): Promise<boolean>

检查当前设备录制是否支持硬件数字水印能力。通过Promise获取返回值。

可在prepare()start()paused()事件成功触发后调用。

系统能力: SystemCapability.Multimedia.Media.AVRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<boolean> 获取是否支持水印的Promise返回值,支持水印:true,不支持水印:false。

示例:

import { BusinessError } from '@kit.BasicServicesKit';

avRecorder.isWatermarkSupported().then((isWatermarkSupported: boolean) => {
  console.info(`Succeeded in get, isWatermarkSupported: ${isWatermarkSupported}`);
}).catch((error: BusinessError) => {
  console.error(`Failed to get and catch error is ${error.message}`);
});

setWatermark13+

setWatermark(watermark: image.PixelMap, config: WatermarkConfig): Promise<void>

给AVRecorder设置水印图像。通过Promise获取返回值。

当且仅当prepare()事件成功触发后,且在start()之前,才能调用setWatermark方法。

系统能力: SystemCapability.Multimedia.Media.AVRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
watermark image.PixelMap 图像PixelMap数据。
当前支持规格:
-当前仅支持pixelformat为RGBA8888。
-原图像为8K时->水印图像限制范围3072x288,原图像为4K时->水印图像限制范围1536x144。
config WatermarkConfig 水印的相关配置参数。

返回值:

类型 说明
Promise<void> 异步返回函数执行结果。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
401 The parameter check failed. Return by promise.
801 Capability not supported. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { image } from '@kit.ImageKit';

let watermark: image.PixelMap|undefined = undefined; // need data.
let watermarkConfig: media.WatermarkConfig = { top: 100, left: 100 }

avRecorder.setWatermark(watermark, watermarkConfig).then(() => {
  console.info('Succeeded in setWatermark');
}).catch((error: BusinessError) => {
  console.error(`Failed to setWatermark and catch error is ${error.message}`);
});

setMetadata18+

setMetadata(metadata: Record<string, string>): void

给AVRecorder的录制文件中设置自定义meta数据。

只有当prepare()事件成功触发后,并在调用stop()方法之前,才能调用setMetadata方法。

系统能力: SystemCapability.Multimedia.Media.AVRecorder

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
metadata [Record] 以键值对形式设置meta数据的tag和value。
- 第一个string为meta tag。
- 第二个string为meta value。

返回值:

类型 说明
void 无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档

错误码ID 错误信息
202 Not System App.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let meta : Record<string, string> = {
   'com.openharmony.userdefine':'10',
   'com.openharmony.userdefine2':'20'
};

avRecorder.setMetadata(meta);

AVRecorderProfile9+

音视频录制的配置文件。

系统能力: SystemCapability.Multimedia.Media.AVRecorder

名称 类型 必填 说明
enableStableQualityMode18+ boolean 视频录制是否选择稳定质量模式,选择视频录制时选填,enableStableQualityMode默认为false。设置为true时,启用视频编码策略以实现质量稳定的编码。
系统接口: 该接口为系统接口。

VideoRecorder9+

说明: AVRecorder9+发布后,VideoRecorder停止维护,建议使用AVRecorder替代。

视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过createVideoRecorder()构建一个VideoRecorder实例。

属性

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

名称 类型 可读 可写 说明
state9+ VideoRecordState 视频录制的状态。

prepare9+

prepare(config: VideoRecorderConfig, callback: AsyncCallback<void>): void

异步方式进行视频录制的参数设置。通过注册回调函数获取返回值。

需要权限: ohos.permission.MICROPHONE

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
config VideoRecorderConfig 配置视频录制的相关参数。
callback AsyncCallback<void> 异步视频录制prepare方法的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
201 Permission denied. Return by callback.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed.
5400102 Operation not allowed. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// 配置参数以实际硬件设备支持的范围为准。
let videoProfile: media.VideoRecorderProfile = {
  audioBitrate : 48000,
  audioChannels : 2,
  audioCodec : media.CodecMimeType.AUDIO_AAC,
  audioSampleRate : 48000,
  fileFormat : media.ContainerFormatType.CFT_MPEG_4,
  videoBitrate : 2000000,
  videoCodec : media.CodecMimeType.VIDEO_AVC,
  videoFrameWidth : 640,
  videoFrameHeight : 480,
  videoFrameRate : 30
}

let videoConfig: media.VideoRecorderConfig = {
  audioSourceType : media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC,
  videoSourceType : media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV,
  profile : videoProfile,
  url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限。
  rotation : 0,
  location : { latitude : 30, longitude : 130 }
}

// asyncallback.
videoRecorder.prepare(videoConfig, (err: BusinessError) => {
  if (err == null) {
    console.info('prepare success');
  } else {
    console.error('prepare failed and error is ' + err.message);
  }
})

prepare9+

prepare(config: VideoRecorderConfig): Promise<void>

异步方式进行视频录制的参数设置。通过Promise获取返回值。

需要权限: ohos.permission.MICROPHONE

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
config VideoRecorderConfig 配置视频录制的相关参数。

返回值:

类型 说明
Promise<void> 异步视频录制prepare方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
201 Permission denied. Return by promise.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed.
5400102 Operation not allowed. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// 配置参数以实际硬件设备支持的范围为准。
let videoProfile: media.VideoRecorderProfile = {
  audioBitrate : 48000,
  audioChannels : 2,
  audioCodec : media.CodecMimeType.AUDIO_AAC,
  audioSampleRate : 48000,
  fileFormat : media.ContainerFormatType.CFT_MPEG_4,
  videoBitrate : 2000000,
  videoCodec : media.CodecMimeType.VIDEO_AVC,
  videoFrameWidth : 640,
  videoFrameHeight : 480,
  videoFrameRate : 30
}

let videoConfig: media.VideoRecorderConfig = {
  audioSourceType : media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC,
  videoSourceType : media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV,
  profile : videoProfile,
  url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限。
  rotation : 0,
  location : { latitude : 30, longitude : 130 }
}

// promise.
videoRecorder.prepare(videoConfig).then(() => {
  console.info('prepare success');
}).catch((err: BusinessError) => {
  console.error('prepare failed and catch error is ' + err.message);
});

getInputSurface9+

getInputSurface(callback: AsyncCallback<string>): void

异步方式获得录制需要的surface。通过注册回调函数获取返回值。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。

应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。

只能在prepare()接口调用后调用。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<string> 异步获得surface的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by callback.
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
let surfaceID: string; // 传递给外界的surfaceID。
videoRecorder.getInputSurface((err: BusinessError, surfaceId: string) => {
  if (err == null) {
    console.info('getInputSurface success');
    surfaceID = surfaceId;
  } else {
    console.error('getInputSurface failed and error is ' + err.message);
  }
});

getInputSurface9+

getInputSurface(): Promise<string>;

异步方式获得录制需要的surface。通过Promise获取返回值。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。

应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。

只能在prepare()接口调用后调用。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<string> 异步获得surface的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by promise.
5400103 I/O error. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
let surfaceID: string; // 传递给外界的surfaceID。
videoRecorder.getInputSurface().then((surfaceId: string) => {
  console.info('getInputSurface success');
  surfaceID = surfaceId;
}).catch((err: BusinessError) => {
  console.error('getInputSurface failed and catch error is ' + err.message);
});

start9+

start(callback: AsyncCallback<void>): void

异步方式开始视频录制。通过注册回调函数获取返回值。

prepare()getInputSurface()后调用,需要依赖数据源先给surface传递数据。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步开始视频录制的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by callback.
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
videoRecorder.start((err: BusinessError) => {
  if (err == null) {
    console.info('start videorecorder success');
  } else {
    console.error('start videorecorder failed and error is ' + err.message);
  }
});

start9+

start(): Promise<void>

异步方式开始视频录制。通过Promise获取返回值。

prepare()getInputSurface()后调用,需要依赖数据源先给surface传递数据。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<void> 异步开始视频录制方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by promise.
5400103 I/O error. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
videoRecorder.start().then(() => {
  console.info('start videorecorder success');
}).catch((err: BusinessError) => {
  console.error('start videorecorder failed and catch error is ' + err.message);
});

pause9+

pause(callback: AsyncCallback<void>): void

异步方式暂停视频录制。通过注册回调函数获取返回值。

start()后调用。可以通过调用resume()接口来恢复录制。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步暂停视频录制的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by callback.
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
videoRecorder.pause((err: BusinessError) => {
  if (err == null) {
    console.info('pause videorecorder success');
  } else {
    console.error('pause videorecorder failed and error is ' + err.message);
  }
});

pause9+

pause(): Promise<void>

异步方式暂停视频录制。通过Promise获取返回值。

start()后调用。可以通过调用resume()接口来恢复录制。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<void> 异步暂停视频录制方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by promise.
5400103 I/O error. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
videoRecorder.pause().then(() => {
  console.info('pause videorecorder success');
}).catch((err: BusinessError) => {
  console.error('pause videorecorder failed and catch error is ' + err.message);
});

resume9+

resume(callback: AsyncCallback<void>): void

异步方式恢复视频录制。通过注册回调函数获取返回值。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步恢复视频录制的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by callback.
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
videoRecorder.resume((err: BusinessError) => {
  if (err == null) {
    console.info('resume videorecorder success');
  } else {
    console.error('resume videorecorder failed and error is ' + err.message);
  }
});

resume9+

resume(): Promise<void>

异步方式恢复视频录制。通过Promise获取返回值。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<void> 异步恢复视频录制方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by promise.
5400103 I/O error. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
videoRecorder.resume().then(() => {
  console.info('resume videorecorder success');
}).catch((err: BusinessError) => {
  console.error('resume videorecorder failed and catch error is ' + err.message);
});

stop9+

stop(callback: AsyncCallback<void>): void

异步方式停止视频录制。通过注册回调函数获取返回值。

需要重新调用prepare()getInputSurface()接口才能重新录制。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步停止视频录制的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by callback.
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
videoRecorder.stop((err: BusinessError) => {
  if (err == null) {
    console.info('stop videorecorder success');
  } else {
    console.error('stop videorecorder failed and error is ' + err.message);
  }
});

stop9+

stop(): Promise<void>

异步方式停止视频录制。通过Promise获取返回值。

需要重新调用prepare()getInputSurface()接口才能重新录制。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<void> 异步停止视频录制方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400102 Operation not allowed. Return by promise.
5400103 I/O error. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
videoRecorder.stop().then(() => {
  console.info('stop videorecorder success');
}).catch((err: BusinessError) => {
  console.error('stop videorecorder failed and catch error is ' + err.message);
});

release9+

release(callback: AsyncCallback<void>): void

异步方式释放视频录制资源。通过注册回调函数获取返回值。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步释放视频录制资源的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
videoRecorder.release((err: BusinessError) => {
  if (err == null) {
    console.info('release videorecorder success');
  } else {
    console.error('release videorecorder failed and error is ' + err.message);
  }
});

release9+

release(): Promise<void>

异步方式释放视频录制资源。通过Promise获取返回值。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<void> 异步释放视频录制资源方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
videoRecorder.release().then(() => {
  console.info('release videorecorder success');
}).catch((err: BusinessError) => {
  console.error('release videorecorder failed and catch error is ' + err.message);
});

reset9+

reset(callback: AsyncCallback<void>): void

异步方式重置视频录制。通过注册回调函数获取返回值。

需要重新调用prepare()getInputSurface()接口才能重新录制。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 异步重置视频录制的回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// asyncallback.
videoRecorder.reset((err: BusinessError) => {
  if (err == null) {
    console.info('reset videorecorder success');
  } else {
    console.error('reset videorecorder failed and error is ' + err.message);
  }
});

reset9+

reset(): Promise<void>

异步方式重置视频录制。通过Promise获取返回值。

需要重新调用prepare()getInputSurface()接口才能重新录制。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

返回值:

类型 说明
Promise<void> 异步重置视频录制方法的Promise返回值。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400103 I/O error. Return by promise.
5400105 Service died. Return by promise.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// promise.
videoRecorder.reset().then(() => {
  console.info('reset videorecorder success');
}).catch((err: BusinessError) => {
  console.error('reset videorecorder failed and catch error is ' + err.message);
});

on(‘error’)9+

on(type: ‘error’, callback: ErrorCallback): void

开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

参数:

参数名 类型 必填 说明
type string 录制错误事件回调类型’error’。
-&nbsp;‘error’:视频录制过程中发生错误,触发该事件。
callback ErrorCallback 录制错误事件回调方法。

错误码:

以下错误码的详细介绍请参见媒体错误码

错误码ID 错误信息
5400103 I/O error. Return by callback.
5400105 Service died. Return by callback.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

// 当获取videoRecordState接口出错时通过此订阅事件上报。
videoRecorder.on('error', (error: BusinessError) => { // 设置'error'事件回调。
  console.error(`audio error called, error: ${error}`);
})

VideoRecordState9+

视频录制的状态机。可通过state属性获取当前状态。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

名称 类型 说明
idle string 视频录制空闲。
prepared string 视频录制参数设置完成。
playing string 视频正在录制。
paused string 视频暂停录制。
stopped string 视频录制停止。
error string 错误状态。

VideoRecorderConfig9+

表示视频录制的参数设置。

通过audioSourceType和videoSourceType区分纯视频录制和音视频录制(纯音频录制请使用AVRecorderAudioRecorder)。纯视频录制时,仅需要设置videoSourceType;音视频录制时,audioSourceType和videoSourceType均需要设置。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

名称 类型 必填 说明
audioSourceType AudioSourceType 视频录制的音频源类型,选择音频录制时必填。
videoSourceType VideoSourceType 视频录制的视频源类型。
profile VideoRecorderProfile 视频录制的profile。
rotation number 录制的视频旋转角度,仅支持0,90,180,270,默认值为0。
location Location 录制视频的地理位置,默认不记录地理位置信息。
url string 视频输出URL:fd://xx&nbsp;(fd&nbsp;number)

VideoRecorderProfile9+

视频录制的配置文件。

系统能力: SystemCapability.Multimedia.Media.VideoRecorder

系统接口: 该接口为系统接口

名称 类型 必填 说明
audioBitrate number 音频编码比特率,选择音频录制时必填。
audioChannels number 音频采集声道数,选择音频录制时必填。
audioCodec CodecMimeType 音频编码格式,选择音频录制时必填。
audioSampleRate number 音频采样率,选择音频录制时必填。
fileFormat ContainerFormatType 文件的容器格式。
videoBitrate number 视频编码比特率。
videoCodec CodecMimeType 视频编码格式。
videoFrameWidth number 录制视频帧的宽。
videoFrameHeight number 录制视频帧的高。
videoFrameRate number 录制视频帧率。

WatermarkConfig13+

设置给AVRecorder的水印相关配置,该位置以画面的左上角为开始点。

系统能力: SystemCapability.Multimedia.Media.Core

系统接口: 该接口为系统接口

名称 类型 必填 说明
top number 显示位置,距离图像顶部的像素偏移量。
left number 显示位置,距离图像左部的像素偏移量。

ScreenCaptureMonitor18+

录屏状态监控类,用于查询和监听系统录屏的录屏状态。在调用ScreenCaptureMonitor方法前,需要先通过getScreenCaptureMonitor()构建一个ScreenCaptureMonitor实例。

属性

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口。

名称 类型 可读 可写 说明
isSystemScreenRecorderWorking18+ boolean 系统录屏是否处于录屏状态。

on(‘systemScreenRecorder’)18+

on(type: ‘systemScreenRecorder’, callback: Callback<ScreenCaptureEvent>): void

开始订阅系统录屏的录屏状态。当上报ScreenCaptureEvent事件后,用户可以根据ScreenCaptureEvent事件得知系统录屏当前处于开启还是停止的状态。

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
type string 录屏状态回调类型’systemScreenRecorder’。
-&nbsp;‘systemScreenRecorder’:系统录屏应用的录屏状态发生变化,触发该事件。
callback function 系统录屏状态回调。ScreenCaptureEvent表示切换到的状态。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档

错误码ID 错误信息
202 Not System App.

示例:


// 当系统录屏应用的录屏状态发生变化时通过此订阅事件上报。
screenCaptureMonitor.on('systemScreenRecorder', (event: media.ScreenCaptureEvent) => { 
  // 设置'systemScreenRecorder'事件回调。
  console.info(`system ScreenRecorder event: ${event}`);
})

off(‘systemScreenRecorder’)18+

off(type: ‘systemScreenRecorder’, callback?: Callback<ScreenCaptureEvent>): void

取消订阅系统录屏的录屏状态。

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
type string 录屏状态回调类型’systemScreenRecorder’。
-&nbsp;‘systemScreenRecorder’:系统录屏应用的录屏状态发生变化,触发该事件。
callback function 系统录屏状态回调。ScreenCaptureEvent表示切换到的状态,不填此参数则会取消最后一次订阅事件。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档

错误码ID 错误信息
202 Not System App.

示例:

screenCaptureMonitor.off('systemScreenRecorder');   

ScreenCaptureEvent18+

系统录屏应用录屏状态的枚举值。

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口。

名称 说明
SCREENCAPTURE_STARTED 0 表示系统录屏应用开始录屏。
SCREENCAPTURE_STOPPED 1 表示系统录屏应用停止录屏。

enableDeviceLevelCapture20+

用于指定折叠屏PC在折叠状态下录制半块屏幕还是整块屏幕。

系统能力: SystemCapability.Multimedia.Media.AVScreenCapture

系统接口: 该接口为系统接口。

enableDeviceLevelCapture是AVScreenCaptureStrategy接口中的一个可选参数,默认值为false。

名称 类型 必填 说明
enableDeviceLevelCapture boolean true表示折叠屏PC在折叠状态下录制整块屏幕,false表示折叠屏PC在折叠状态下录制半块屏幕。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Media Kit(媒体服务)

harmony 鸿蒙Interface (AVImageGenerator)

harmony 鸿蒙Interface (AVMetadataExtractor)

harmony 鸿蒙Interface (AVPlayer)

harmony 鸿蒙Interface (AVRecorder)

harmony 鸿蒙Interface (AVScreenCaptureRecorder)

harmony 鸿蒙Interface (AVTranscoder)

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

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

harmony 鸿蒙Interface (MediaSource)

0  赞