1# @ohos.multimedia.media (媒体服务)(系统接口) 2 3媒体子系统为开发者提供一套简单且易于理解的接口,使得开发者能够方便接入系统并使用系统的媒体资源。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> - 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.multimedia.media (媒体服务)](js-apis-media.md)。 9 10## 导入模块 11 12```ts 13import { media } from '@kit.MediaKit'; 14``` 15 16## media.createVideoRecorder<sup>9+</sup> 17 18createVideoRecorder(callback: AsyncCallback\<VideoRecorder>): void 19 20异步方式创建视频录制实例。通过注册回调函数获取返回值。 21一台设备只允许创建一个录制实例。 22 23**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 24 25**系统接口:** 该接口为系统接口 26 27**参数:** 28 29| 参数名 | 类型 | 必填 | 说明 | 30| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 31| callback | AsyncCallback<[VideoRecorder](#videorecorder9)> | 是 | 回调函数。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | 32 33**错误码:** 34 35以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 36 37| 错误码ID | 错误信息 | 38| -------- | ------------------------------ | 39| 5400101 | No memory. Return by callback. | 40 41**示例:** 42 43```ts 44import { BusinessError } from '@kit.BasicServicesKit'; 45 46let videoRecorder: media.VideoRecorder; 47media.createVideoRecorder((error: BusinessError, video: media.VideoRecorder) => { 48 if (video != null) { 49 videoRecorder = video; 50 console.info('video createVideoRecorder success'); 51 } else { 52 console.error(`video createVideoRecorder fail, error message:${error.message}`); 53 } 54}); 55``` 56 57## media.createVideoRecorder<sup>9+</sup> 58 59createVideoRecorder(): Promise\<VideoRecorder> 60 61异步方式创建视频录制实例。通过Promise获取返回值。 62一台设备只允许创建一个录制实例。 63 64**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 65 66**系统接口:** 该接口为系统接口 67 68**返回值:** 69 70| 类型 | 说明 | 71| ----------------------------------------- | ------------------------------------------------------------ | 72| Promise<[VideoRecorder](#videorecorder9)> | Promise对象。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | 73 74**错误码:** 75 76以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 77 78| 错误码ID | 错误信息 | 79| -------- | ----------------------------- | 80| 5400101 | No memory. Return by promise. | 81 82**示例:** 83 84```ts 85import { BusinessError } from '@kit.BasicServicesKit'; 86 87let videoRecorder: media.VideoRecorder; 88media.createVideoRecorder().then((video: media.VideoRecorder) => { 89 if (video != null) { 90 videoRecorder = video; 91 console.info('video createVideoRecorder success'); 92 } else { 93 console.error('video createVideoRecorder fail'); 94 } 95}).catch((error: BusinessError) => { 96 console.error(`video catchCallback, error message:${error.message}`); 97}); 98``` 99 100## media.reportAVScreenCaptureUserChoice<sup>12+</sup> 101 102reportAVScreenCaptureUserChoice(sessionId: number, choice: string): Promise\<void> 103 104上报录屏隐私弹窗的选择结果到ScreenCapture的服务端,用于判断是否开始录屏。如果用户选择“取消”则不进行录屏,如果用户选择“确定”则开始录屏。 105 106此接口提供给创建弹窗的系统应用调用。 107 108**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 109 110**系统接口:** 该接口为系统接口 111 112**参数:** 113 114| 参数名 | 类型 | 必填 | 说明 | 115| --------- | ------ | ---- | ------------------------------------------------------------ | 116| sessionId | number | 是 | AVScreenCapture服务会话Id,会由AVScreenCapture拉起隐私弹窗时传给应用。 | 117| choice | string | 是 | 用户的选择内容,包含是否同意录屏、选择的屏幕Id和窗口Id。可见示例中JsonData样例。| 118 119**错误码:** 120 121| 错误码ID | 错误信息 | 122| -------- | ------------------------------------------- | 123| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed. | 124| 5400101 | No memory. Return by promise. | 125 126**示例:** 127 128```ts 129import { BusinessError } from '@kit.BasicServicesKit'; 130import { media } from '@kit.MediaKit'; 131 132class JsonData { 133 public choice: string = 'true' 134 public displayId: number | null = -1 135 public missionId: number | null = -1 136} 137let sessionId: number = 0; // 替换成拉起此进程的sessionId。 138 139try { 140 const jsonData: JsonData = { 141 choice: 'true', // 替换成用户的选择内容。 142 displayId: -1, // 替换成用户选择的屏幕Id。 143 missionId: -1, // 替换成用户选择的窗口Id。 144 } 145 await media.reportAVScreenCaptureUserChoice(sessionId, JSON.stringify(jsonData)); 146} catch (error: BusinessError) { 147 console.error(`reportAVScreenCaptureUserChoice error, error message: ${error.message}`); 148} 149``` 150 151## media.getScreenCaptureMonitor<sup>18+</sup> 152 153getScreenCaptureMonitor(): Promise\<ScreenCaptureMonitor> 154 155获取录屏监控模块实例。使用Promise异步回调。 156 157**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 158 159**系统接口:** 该接口为系统接口。 160 161**返回值:** 162 163| 类型 | 说明 | 164| ----------------------------------------- | ------------------------------------------------------------ | 165| Promise<[ScreenCaptureMonitor](#screencapturemonitor18)> | Promise对象。可用于查询和监听系统录屏状态。<br>异步返回ScreenCaptureMonitor实例,失败时返回null。 | 166 167**错误码:** 168 169以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[媒体错误码](errorcode-media.md)。 170 171| 错误码ID | 错误信息 | 172| -------- | ----------------------------- | 173| 202 | Not System App. | 174| 5400101 | No memory. Return by promise. | 175 176**示例:** 177 178```ts 179let screenCaptureMonitor: media.ScreenCaptureMonitor; 180try { 181 screenCaptureMonitor = await media.getScreenCaptureMonitor(); 182} catch (err) { 183 console.error(`getScreenCaptureMonitor failed, error message:${err.message}`); 184} 185``` 186 187## PixelMapParams<sup>11+</sup> 188 189获取视频缩略图时,输出缩略图的格式参数。 190 191**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 192 193| 名称 | 类型 | 可读 | 可写 | 说明 | 194| -------- | ------ | ------| ------ | ---------------------- | 195| colorFormat | [PixelFormat](#pixelformat11) | 是 | 是 | 输出的缩略图颜色格式<br>**系统接口:** 该接口为系统接口 | 196 197## PixelFormat<sup>11+</sup> 198 199获取视频缩略图时,输出的缩略图采用的颜色格式枚举。 200 201**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 202 203**系统接口:** 该接口为系统接口 204 205| 名称 | 值 | 说明 | 206| ------------------------ | --------------- | ------------------------------------------------------------ | 207| RGB_565 | 2 | 表示RGB_565颜色格式。 | 208| RGBA_8888 | 3 | 表示RGBA_8888颜色格式。 | 209| RGB_888 | 5 | 表示RGB_888颜色格式。 | 210 211## AVMetadataExtractor<sup>11+</sup> 212> **说明:** 213> 元数据获取类,用于从媒体资源中获取元数据。在调用AVMetadataExtractor的方法前,需要先通过[createAVMetadataExtractor()](js-apis-media.md#mediacreateavmetadataextractor11)构建一个AVMetadataExtractor实例。 214 215### getTimeByFrameIndex<sup>12+</sup> 216 217getTimeByFrameIndex(index: number): Promise\<number> 218 219获取目标视频帧号对应的视频时间戳。仅支持MP4视频文件。 220 221**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor 222 223**系统接口:** 该接口为系统接口 224 225**参数:** 226 227| 参数名 | 类型 | 必填 | 说明 | 228| ------ | ------ | ---- | ---------- | 229| index | number | 是 | 视频帧号。 | 230 231**返回值:** 232 233| 类型 | 说明 | 234| ---------------- | ----------------------------------- | 235| Promise\<number> | 时间戳的Promise返回值。单位是微秒。 | 236 237**错误码:** 238 239以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 240 241| 错误码ID | 错误信息 | 242| -------- | ---------------------------------------------- | 243| 401 | The parameter check failed. Return by promise. | 244| 5400102 | Operation not allowed. Returned by promise. | 245| 5400106 | Unsupported format. Returned by promise. | 246 247**示例:** 248 249```ts 250import { media } from '@kit.MediaKit'; 251import { BusinessError } from '@kit.BasicServicesKit'; 252 253avMetadataExtractor.getTimeByFrameIndex(0).then((timeUs: number) => { 254 console.info(`Succeeded getTimeByFrameIndex timeUs: ${timeUs}`); 255}).catch((err: BusinessError) => { 256 console.error(`Failed to getTimeByFrameIndex ${err.message}`); 257}) 258``` 259 260### getFrameIndexByTime<sup>12+</sup> 261 262getFrameIndexByTime(timeUs: number): Promise\<number> 263 264获取目标视频时间戳对应的视频帧号。仅支持MP4视频文件。 265 266**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor 267 268**系统接口:** 该接口为系统接口 269 270**参数:** 271 272| 参数名 | 类型 | 必填 | 说明 | 273| ------ | ------ | ---- | ------------------------ | 274| timeUs | number | 是 | 视频时间戳,单位:微秒。 | 275 276**返回值:** 277 278| 类型 | 说明 | 279| ---------------- | ------------------------- | 280| Promise\<number> | 视频帧号的Promise返回值。 | 281 282**错误码:** 283 284以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 285 286| 错误码ID | 错误信息 | 287| -------- | ---------------------------------------------- | 288| 401 | The parameter check failed. Return by promise. | 289| 5400102 | Operation not allowed. Returned by promise. | 290| 5400106 | Unsupported format. Returned by promise. | 291 292**示例:** 293 294```ts 295import { media } from '@kit.MediaKit'; 296import { BusinessError } from '@kit.BasicServicesKit'; 297 298avMetadataExtractor.getFrameIndexByTime(0).then((index: number) => { 299 console.info(`Succeeded getFrameIndexByTime index: ${index}`); 300}).catch((err: BusinessError) => { 301 console.error(`Failed to getFrameIndexByTime ${err.message}`); 302}) 303``` 304 305## AVRecorder<sup>9+</sup> 306 307音视频录制管理类,用于音视频媒体录制。在调用AVRecorder的方法前,需要先通过[createAVRecorder()](js-apis-media.md#mediacreateavrecorder9)构建一个AVRecorder实例。 308 309> **说明:** 310> 311> 使用相机进行视频录制时,需要与相机模块配合,相机模块接口的使用详情见[相机管理](../apis-camera-kit/js-apis-camera.md)。 312 313### isWatermarkSupported<sup>13+</sup> 314 315isWatermarkSupported(): Promise\<boolean> 316 317检查当前设备录制是否支持硬件数字水印能力。通过Promise获取返回值。 318 319可在[prepare()](js-apis-media.md#prepare9-3)、[start()](js-apis-media.md#start9)、[paused()](js-apis-media.md#pause9)事件成功触发后调用。 320 321**系统能力:** SystemCapability.Multimedia.Media.AVRecorder 322 323**系统接口:** 该接口为系统接口 324 325**返回值:** 326 327| 类型 | 说明 | 328| ---------------- | -------------------------------- | 329| Promise\<boolean> | 获取是否支持水印的Promise返回值,支持水印:true,不支持水印:false。 | 330 331**示例:** 332 333```ts 334import { BusinessError } from '@kit.BasicServicesKit'; 335 336avRecorder.isWatermarkSupported().then((isWatermarkSupported: boolean) => { 337 console.info(`Succeeded in get, isWatermarkSupported: ${isWatermarkSupported}`); 338}).catch((error: BusinessError) => { 339 console.error(`Failed to get and catch error is ${error.message}`); 340}); 341``` 342 343### setWatermark<sup>13+</sup> 344 345setWatermark(watermark: image.PixelMap, config: WatermarkConfig): Promise\<void> 346 347给AVRecorder设置水印图像。通过Promise获取返回值。 348 349当且仅当[prepare()](js-apis-media.md#prepare9-3)事件成功触发后,且在[start()](js-apis-media.md#start9)之前,才能调用setWatermark方法。 350 351**系统能力:** SystemCapability.Multimedia.Media.AVRecorder 352 353**系统接口:** 该接口为系统接口 354 355**参数:** 356 357| 参数名 | 类型 | 必填 | 说明 | 358| -------- | -------------------- | ---- | --------------------------- | 359| watermark | [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | 是 | 图像PixelMap数据。<br>当前支持规格:<br>-当前仅支持pixelformat为RGBA8888。<br>-原图像为8K时->水印图像限制范围3072x288,原图像为4K时->水印图像限制范围1536x144。 | 360| config | [WatermarkConfig](#watermarkconfig13) | 是 | 水印的相关配置参数。 | 361 362**返回值:** 363 364| 类型 | 说明 | 365| ---------------- | -------------------------------- | 366| Promise\<void> | 异步返回函数执行结果。 | 367 368**错误码:** 369 370以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 371 372| 错误码ID | 错误信息 | 373| -------- | -------------------------------------- | 374| 401 | The parameter check failed. Return by promise. | 375| 801 | Capability not supported. Return by promise. | 376 377**示例:** 378 379```ts 380import { BusinessError } from '@kit.BasicServicesKit'; 381import { image } from '@kit.ImageKit'; 382 383let watermark: image.PixelMap|undefined = undefined; // need data. 384let watermarkConfig: media.WatermarkConfig = { top: 100, left: 100 } 385 386avRecorder.setWatermark(watermark, watermarkConfig).then(() => { 387 console.info('Succeeded in setWatermark'); 388}).catch((error: BusinessError) => { 389 console.error(`Failed to setWatermark and catch error is ${error.message}`); 390}); 391``` 392 393## AVRecorderProfile<sup>9+</sup> 394 395音视频录制的配置文件。 396 397**系统能力:** SystemCapability.Multimedia.Media.AVRecorder 398 399| 名称 | 类型 | 必填 | 说明 | 400| ---------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 401| enableStableQualityMode<sup>18+</sup> | boolean | 否 | 视频录制是否选择稳定质量模式,选择视频录制时选填,enableStableQualityMode默认为false。设置为true时,启用视频编码策略以实现质量稳定的编码。<br>**系统接口:** 该接口为系统接口| 402 403## VideoRecorder<sup>9+</sup> 404 405> **说明:** 406> AVRecorder<sup>9+</sup>发布后,VideoRecorder停止维护,建议使用[AVRecorder](js-apis-media.md#avrecorder9)替代。 407 408视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorder()](#mediacreatevideorecorder9)构建一个[VideoRecorder](#videorecorder9)实例。 409 410### 属性 411 412**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 413 414**系统接口:** 该接口为系统接口 415 416| 名称 | 类型 | 可读 | 可写 | 说明 | 417| ------------------ | -------------------------------------- | ---- | ---- | ---------------- | 418| state<sup>9+</sup> | [VideoRecordState](#videorecordstate9) | 是 | 否 | 视频录制的状态。 | 419 420### prepare<sup>9+</sup> 421 422prepare(config: VideoRecorderConfig, callback: AsyncCallback\<void>): void 423 424异步方式进行视频录制的参数设置。通过注册回调函数获取返回值。 425 426**需要权限:** ohos.permission.MICROPHONE 427 428**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 429 430**系统接口:** 该接口为系统接口 431 432**参数:** 433 434| 参数名 | 类型 | 必填 | 说明 | 435| -------- | -------------------------------------------- | ---- | ----------------------------------- | 436| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | 437| callback | AsyncCallback\<void> | 是 | 异步视频录制prepare方法的回调方法。 | 438 439**错误码:** 440 441以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 442 443| 错误码ID | 错误信息 | 444| -------- | ------------------------------------------ | 445| 201 | Permission denied. Return by callback. | 446| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed. | 447| 5400102 | Operation not allowed. Return by callback. | 448| 5400105 | Service died. Return by callback. | 449 450**示例:** 451 452```ts 453import { BusinessError } from '@kit.BasicServicesKit'; 454 455// 配置参数以实际硬件设备支持的范围为准。 456let videoProfile: media.VideoRecorderProfile = { 457 audioBitrate : 48000, 458 audioChannels : 2, 459 audioCodec : media.CodecMimeType.AUDIO_AAC, 460 audioSampleRate : 48000, 461 fileFormat : media.ContainerFormatType.CFT_MPEG_4, 462 videoBitrate : 2000000, 463 videoCodec : media.CodecMimeType.VIDEO_AVC, 464 videoFrameWidth : 640, 465 videoFrameHeight : 480, 466 videoFrameRate : 30 467} 468 469let videoConfig: media.VideoRecorderConfig = { 470 audioSourceType : media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC, 471 videoSourceType : media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV, 472 profile : videoProfile, 473 url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限。 474 rotation : 0, 475 location : { latitude : 30, longitude : 130 } 476} 477 478// asyncallback. 479videoRecorder.prepare(videoConfig, (err: BusinessError) => { 480 if (err == null) { 481 console.info('prepare success'); 482 } else { 483 console.error('prepare failed and error is ' + err.message); 484 } 485}) 486``` 487 488### prepare<sup>9+</sup> 489 490prepare(config: VideoRecorderConfig): Promise\<void> 491 492异步方式进行视频录制的参数设置。通过Promise获取返回值。 493 494**需要权限:** ohos.permission.MICROPHONE 495 496**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 497 498**系统接口:** 该接口为系统接口 499 500**参数:** 501 502| 参数名 | 类型 | 必填 | 说明 | 503| ------ | -------------------------------------------- | ---- | ------------------------ | 504| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | 505 506**返回值:** 507 508| 类型 | 说明 | 509| -------------- | ---------------------------------------- | 510| Promise\<void> | 异步视频录制prepare方法的Promise返回值。 | 511 512**错误码:** 513 514以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 515 516| 错误码ID | 错误信息 | 517| -------- | ----------------------------------------- | 518| 201 | Permission denied. Return by promise. | 519| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3.Parameter verification failed. | 520| 5400102 | Operation not allowed. Return by promise. | 521| 5400105 | Service died. Return by promise. | 522 523**示例:** 524 525```ts 526import { BusinessError } from '@kit.BasicServicesKit'; 527 528// 配置参数以实际硬件设备支持的范围为准。 529let videoProfile: media.VideoRecorderProfile = { 530 audioBitrate : 48000, 531 audioChannels : 2, 532 audioCodec : media.CodecMimeType.AUDIO_AAC, 533 audioSampleRate : 48000, 534 fileFormat : media.ContainerFormatType.CFT_MPEG_4, 535 videoBitrate : 2000000, 536 videoCodec : media.CodecMimeType.VIDEO_AVC, 537 videoFrameWidth : 640, 538 videoFrameHeight : 480, 539 videoFrameRate : 30 540} 541 542let videoConfig: media.VideoRecorderConfig = { 543 audioSourceType : media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC, 544 videoSourceType : media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV, 545 profile : videoProfile, 546 url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限。 547 rotation : 0, 548 location : { latitude : 30, longitude : 130 } 549} 550 551// promise. 552videoRecorder.prepare(videoConfig).then(() => { 553 console.info('prepare success'); 554}).catch((err: BusinessError) => { 555 console.error('prepare failed and catch error is ' + err.message); 556}); 557``` 558 559### getInputSurface<sup>9+</sup> 560 561getInputSurface(callback: AsyncCallback\<string>): void 562 563异步方式获得录制需要的surface。通过注册回调函数获取返回值。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 564 565应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 566 567只能在[prepare()](#prepare9)接口调用后调用。 568 569**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 570 571**系统接口:** 该接口为系统接口 572 573**参数:** 574 575| 参数名 | 类型 | 必填 | 说明 | 576| -------- | ---------------------- | ---- | --------------------------- | 577| callback | AsyncCallback\<string> | 是 | 异步获得surface的回调方法。 | 578 579**错误码:** 580 581以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 582 583| 错误码ID | 错误信息 | 584| -------- | ------------------------------------------ | 585| 5400102 | Operation not allowed. Return by callback. | 586| 5400103 | I/O error. Return by callback. | 587| 5400105 | Service died. Return by callback. | 588 589**示例:** 590 591```ts 592import { BusinessError } from '@kit.BasicServicesKit'; 593 594// asyncallback. 595let surfaceID: string; // 传递给外界的surfaceID。 596videoRecorder.getInputSurface((err: BusinessError, surfaceId: string) => { 597 if (err == null) { 598 console.info('getInputSurface success'); 599 surfaceID = surfaceId; 600 } else { 601 console.error('getInputSurface failed and error is ' + err.message); 602 } 603}); 604``` 605 606### getInputSurface<sup>9+</sup> 607 608getInputSurface(): Promise\<string>; 609 610 异步方式获得录制需要的surface。通过Promise获取返回值。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 611 612应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 613 614只能在[prepare()](#prepare9-1)接口调用后调用。 615 616**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 617 618**系统接口:** 该接口为系统接口 619 620**返回值:** 621 622| 类型 | 说明 | 623| ---------------- | -------------------------------- | 624| Promise\<string> | 异步获得surface的Promise返回值。 | 625 626**错误码:** 627 628以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 629 630| 错误码ID | 错误信息 | 631| -------- | ----------------------------------------- | 632| 5400102 | Operation not allowed. Return by promise. | 633| 5400103 | I/O error. Return by promise. | 634| 5400105 | Service died. Return by promise. | 635 636**示例:** 637 638```ts 639import { BusinessError } from '@kit.BasicServicesKit'; 640 641// promise. 642let surfaceID: string; // 传递给外界的surfaceID。 643videoRecorder.getInputSurface().then((surfaceId: string) => { 644 console.info('getInputSurface success'); 645 surfaceID = surfaceId; 646}).catch((err: BusinessError) => { 647 console.error('getInputSurface failed and catch error is ' + err.message); 648}); 649``` 650 651### start<sup>9+</sup> 652 653start(callback: AsyncCallback\<void>): void 654 655异步方式开始视频录制。通过注册回调函数获取返回值。 656 657在[prepare()](#prepare9)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 658 659**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 660 661**系统接口:** 该接口为系统接口 662 663**参数:** 664 665| 参数名 | 类型 | 必填 | 说明 | 666| -------- | -------------------- | ---- | ---------------------------- | 667| callback | AsyncCallback\<void> | 是 | 异步开始视频录制的回调方法。 | 668 669**错误码:** 670 671以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 672 673| 错误码ID | 错误信息 | 674| -------- | ------------------------------------------ | 675| 5400102 | Operation not allowed. Return by callback. | 676| 5400103 | I/O error. Return by callback. | 677| 5400105 | Service died. Return by callback. | 678 679**示例:** 680 681```ts 682import { BusinessError } from '@kit.BasicServicesKit'; 683 684// asyncallback. 685videoRecorder.start((err: BusinessError) => { 686 if (err == null) { 687 console.info('start videorecorder success'); 688 } else { 689 console.error('start videorecorder failed and error is ' + err.message); 690 } 691}); 692``` 693 694### start<sup>9+</sup> 695 696start(): Promise\<void> 697 698异步方式开始视频录制。通过Promise获取返回值。 699 700在[prepare()](#prepare9-1)和[getInputSurface()](#getinputsurface9-1)后调用,需要依赖数据源先给surface传递数据。 701 702**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 703 704**系统接口:** 该接口为系统接口 705 706**返回值:** 707 708| 类型 | 说明 | 709| -------------- | ------------------------------------- | 710| Promise\<void> | 异步开始视频录制方法的Promise返回值。 | 711 712**错误码:** 713 714以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 715 716| 错误码ID | 错误信息 | 717| -------- | ----------------------------------------- | 718| 5400102 | Operation not allowed. Return by promise. | 719| 5400103 | I/O error. Return by promise. | 720| 5400105 | Service died. Return by promise. | 721 722**示例:** 723 724```ts 725import { BusinessError } from '@kit.BasicServicesKit'; 726 727// promise. 728videoRecorder.start().then(() => { 729 console.info('start videorecorder success'); 730}).catch((err: BusinessError) => { 731 console.error('start videorecorder failed and catch error is ' + err.message); 732}); 733``` 734 735### pause<sup>9+</sup> 736 737pause(callback: AsyncCallback\<void>): void 738 739异步方式暂停视频录制。通过注册回调函数获取返回值。 740 741在[start()](#start9)后调用。可以通过调用[resume()](#resume9)接口来恢复录制。 742 743**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 744 745**系统接口:** 该接口为系统接口 746 747**参数:** 748 749| 参数名 | 类型 | 必填 | 说明 | 750| -------- | -------------------- | ---- | ---------------------------- | 751| callback | AsyncCallback\<void> | 是 | 异步暂停视频录制的回调方法。 | 752 753**错误码:** 754 755以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 756 757| 错误码ID | 错误信息 | 758| -------- | ------------------------------------------ | 759| 5400102 | Operation not allowed. Return by callback. | 760| 5400103 | I/O error. Return by callback. | 761| 5400105 | Service died. Return by callback. | 762 763**示例:** 764 765```ts 766import { BusinessError } from '@kit.BasicServicesKit'; 767 768// asyncallback. 769videoRecorder.pause((err: BusinessError) => { 770 if (err == null) { 771 console.info('pause videorecorder success'); 772 } else { 773 console.error('pause videorecorder failed and error is ' + err.message); 774 } 775}); 776``` 777 778### pause<sup>9+</sup> 779 780pause(): Promise\<void> 781 782异步方式暂停视频录制。通过Promise获取返回值。 783 784在[start()](#start9-1)后调用。可以通过调用[resume()](#resume9-1)接口来恢复录制。 785 786**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 787 788**系统接口:** 该接口为系统接口 789 790**返回值:** 791 792| 类型 | 说明 | 793| -------------- | ------------------------------------- | 794| Promise\<void> | 异步暂停视频录制方法的Promise返回值。 | 795 796**错误码:** 797 798以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 799 800| 错误码ID | 错误信息 | 801| -------- | ----------------------------------------- | 802| 5400102 | Operation not allowed. Return by promise. | 803| 5400103 | I/O error. Return by promise. | 804| 5400105 | Service died. Return by promise. | 805 806**示例:** 807 808```ts 809import { BusinessError } from '@kit.BasicServicesKit'; 810 811// promise. 812videoRecorder.pause().then(() => { 813 console.info('pause videorecorder success'); 814}).catch((err: BusinessError) => { 815 console.error('pause videorecorder failed and catch error is ' + err.message); 816}); 817``` 818 819### resume<sup>9+</sup> 820 821resume(callback: AsyncCallback\<void>): void 822 823异步方式恢复视频录制。通过注册回调函数获取返回值。 824 825**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 826 827**系统接口:** 该接口为系统接口 828 829**参数:** 830 831| 参数名 | 类型 | 必填 | 说明 | 832| -------- | -------------------- | ---- | ---------------------------- | 833| callback | AsyncCallback\<void> | 是 | 异步恢复视频录制的回调方法。 | 834 835**错误码:** 836 837以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 838 839| 错误码ID | 错误信息 | 840| -------- | ------------------------------------------ | 841| 5400102 | Operation not allowed. Return by callback. | 842| 5400103 | I/O error. Return by callback. | 843| 5400105 | Service died. Return by callback. | 844 845**示例:** 846 847```ts 848import { BusinessError } from '@kit.BasicServicesKit'; 849 850// asyncallback. 851videoRecorder.resume((err: BusinessError) => { 852 if (err == null) { 853 console.info('resume videorecorder success'); 854 } else { 855 console.error('resume videorecorder failed and error is ' + err.message); 856 } 857}); 858``` 859 860### resume<sup>9+</sup> 861 862resume(): Promise\<void> 863 864异步方式恢复视频录制。通过Promise获取返回值。 865 866**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 867 868**系统接口:** 该接口为系统接口 869 870**返回值:** 871 872| 类型 | 说明 | 873| -------------- | ------------------------------------- | 874| Promise\<void> | 异步恢复视频录制方法的Promise返回值。 | 875 876**错误码:** 877 878以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 879 880| 错误码ID | 错误信息 | 881| -------- | ----------------------------------------- | 882| 5400102 | Operation not allowed. Return by promise. | 883| 5400103 | I/O error. Return by promise. | 884| 5400105 | Service died. Return by promise. | 885 886**示例:** 887 888```ts 889import { BusinessError } from '@kit.BasicServicesKit'; 890 891// promise. 892videoRecorder.resume().then(() => { 893 console.info('resume videorecorder success'); 894}).catch((err: BusinessError) => { 895 console.error('resume videorecorder failed and catch error is ' + err.message); 896}); 897``` 898 899### stop<sup>9+</sup> 900 901stop(callback: AsyncCallback\<void>): void 902 903异步方式停止视频录制。通过注册回调函数获取返回值。 904 905需要重新调用[prepare()](#prepare9)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 906 907**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 908 909**系统接口:** 该接口为系统接口 910 911**参数:** 912 913| 参数名 | 类型 | 必填 | 说明 | 914| -------- | -------------------- | ---- | ---------------------------- | 915| callback | AsyncCallback\<void> | 是 | 异步停止视频录制的回调方法。 | 916 917**错误码:** 918 919以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 920 921| 错误码ID | 错误信息 | 922| -------- | ------------------------------------------ | 923| 5400102 | Operation not allowed. Return by callback. | 924| 5400103 | I/O error. Return by callback. | 925| 5400105 | Service died. Return by callback. | 926 927**示例:** 928 929```ts 930import { BusinessError } from '@kit.BasicServicesKit'; 931 932// asyncallback. 933videoRecorder.stop((err: BusinessError) => { 934 if (err == null) { 935 console.info('stop videorecorder success'); 936 } else { 937 console.error('stop videorecorder failed and error is ' + err.message); 938 } 939}); 940``` 941 942### stop<sup>9+</sup> 943 944stop(): Promise\<void> 945 946异步方式停止视频录制。通过Promise获取返回值。 947 948需要重新调用[prepare()](#prepare9-1)和[getInputSurface()](#getinputsurface9-1)接口才能重新录制。 949 950**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 951 952**系统接口:** 该接口为系统接口 953 954**返回值:** 955 956| 类型 | 说明 | 957| -------------- | ------------------------------------- | 958| Promise\<void> | 异步停止视频录制方法的Promise返回值。 | 959 960**错误码:** 961 962以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 963 964| 错误码ID | 错误信息 | 965| -------- | ----------------------------------------- | 966| 5400102 | Operation not allowed. Return by promise. | 967| 5400103 | I/O error. Return by promise. | 968| 5400105 | Service died. Return by promise. | 969 970**示例:** 971 972```ts 973import { BusinessError } from '@kit.BasicServicesKit'; 974 975// promise. 976videoRecorder.stop().then(() => { 977 console.info('stop videorecorder success'); 978}).catch((err: BusinessError) => { 979 console.error('stop videorecorder failed and catch error is ' + err.message); 980}); 981``` 982 983### release<sup>9+</sup> 984 985release(callback: AsyncCallback\<void>): void 986 987异步方式释放视频录制资源。通过注册回调函数获取返回值。 988 989**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 990 991**系统接口:** 该接口为系统接口 992 993**参数:** 994 995| 参数名 | 类型 | 必填 | 说明 | 996| -------- | -------------------- | ---- | -------------------------------- | 997| callback | AsyncCallback\<void> | 是 | 异步释放视频录制资源的回调方法。 | 998 999**错误码:** 1000 1001以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 1002 1003| 错误码ID | 错误信息 | 1004| -------- | --------------------------------- | 1005| 5400105 | Service died. Return by callback. | 1006 1007**示例:** 1008 1009```ts 1010import { BusinessError } from '@kit.BasicServicesKit'; 1011 1012// asyncallback. 1013videoRecorder.release((err: BusinessError) => { 1014 if (err == null) { 1015 console.info('release videorecorder success'); 1016 } else { 1017 console.error('release videorecorder failed and error is ' + err.message); 1018 } 1019}); 1020``` 1021 1022### release<sup>9+</sup> 1023 1024release(): Promise\<void> 1025 1026异步方式释放视频录制资源。通过Promise获取返回值。 1027 1028**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1029 1030**系统接口:** 该接口为系统接口 1031 1032**返回值:** 1033 1034| 类型 | 说明 | 1035| -------------- | ----------------------------------------- | 1036| Promise\<void> | 异步释放视频录制资源方法的Promise返回值。 | 1037 1038**错误码:** 1039 1040以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 1041 1042| 错误码ID | 错误信息 | 1043| -------- | --------------------------------- | 1044| 5400105 | Service died. Return by callback. | 1045 1046**示例:** 1047 1048```ts 1049import { BusinessError } from '@kit.BasicServicesKit'; 1050 1051// promise. 1052videoRecorder.release().then(() => { 1053 console.info('release videorecorder success'); 1054}).catch((err: BusinessError) => { 1055 console.error('release videorecorder failed and catch error is ' + err.message); 1056}); 1057``` 1058 1059### reset<sup>9+</sup> 1060 1061reset(callback: AsyncCallback\<void>): void 1062 1063异步方式重置视频录制。通过注册回调函数获取返回值。 1064 1065需要重新调用[prepare()](#prepare9)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 1066 1067**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1068 1069**系统接口:** 该接口为系统接口 1070 1071**参数:** 1072 1073| 参数名 | 类型 | 必填 | 说明 | 1074| -------- | -------------------- | ---- | ---------------------------- | 1075| callback | AsyncCallback\<void> | 是 | 异步重置视频录制的回调方法。 | 1076 1077**错误码:** 1078 1079以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 1080 1081| 错误码ID | 错误信息 | 1082| -------- | --------------------------------- | 1083| 5400103 | I/O error. Return by callback. | 1084| 5400105 | Service died. Return by callback. | 1085 1086**示例:** 1087 1088```ts 1089import { BusinessError } from '@kit.BasicServicesKit'; 1090 1091// asyncallback. 1092videoRecorder.reset((err: BusinessError) => { 1093 if (err == null) { 1094 console.info('reset videorecorder success'); 1095 } else { 1096 console.error('reset videorecorder failed and error is ' + err.message); 1097 } 1098}); 1099``` 1100 1101### reset<sup>9+</sup> 1102 1103reset(): Promise\<void> 1104 1105异步方式重置视频录制。通过Promise获取返回值。 1106 1107需要重新调用[prepare()](#prepare9-1)和[getInputSurface()](#getinputsurface9-1)接口才能重新录制。 1108 1109**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1110 1111**系统接口:** 该接口为系统接口 1112 1113**返回值:** 1114 1115| 类型 | 说明 | 1116| -------------- | ------------------------------------- | 1117| Promise\<void> | 异步重置视频录制方法的Promise返回值。 | 1118 1119**错误码:** 1120 1121以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 1122 1123| 错误码ID | 错误信息 | 1124| -------- | -------------------------------- | 1125| 5400103 | I/O error. Return by promise. | 1126| 5400105 | Service died. Return by promise. | 1127 1128**示例:** 1129 1130```ts 1131import { BusinessError } from '@kit.BasicServicesKit'; 1132 1133// promise. 1134videoRecorder.reset().then(() => { 1135 console.info('reset videorecorder success'); 1136}).catch((err: BusinessError) => { 1137 console.error('reset videorecorder failed and catch error is ' + err.message); 1138}); 1139``` 1140 1141### on('error')<sup>9+</sup> 1142 1143on(type: 'error', callback: ErrorCallback): void 1144 1145开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 1146 1147**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1148 1149**系统接口:** 该接口为系统接口 1150 1151**参数:** 1152 1153| 参数名 | 类型 | 必填 | 说明 | 1154| -------- | ------------- | ---- | ------------------------------------------------------------ | 1155| type | string | 是 | 录制错误事件回调类型'error'。<br/>- 'error':视频录制过程中发生错误,触发该事件。 | 1156| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 录制错误事件回调方法。 | 1157 1158**错误码:** 1159 1160以下错误码的详细介绍请参见[媒体错误码](errorcode-media.md) 1161 1162| 错误码ID | 错误信息 | 1163| -------- | --------------------------------- | 1164| 5400103 | I/O error. Return by callback. | 1165| 5400105 | Service died. Return by callback. | 1166 1167**示例:** 1168 1169```ts 1170import { BusinessError } from '@kit.BasicServicesKit'; 1171 1172// 当获取videoRecordState接口出错时通过此订阅事件上报。 1173videoRecorder.on('error', (error: BusinessError) => { // 设置'error'事件回调。 1174 console.error(`audio error called, error: ${error}`); 1175}) 1176``` 1177 1178## VideoRecordState<sup>9+</sup> 1179 1180视频录制的状态机。可通过state属性获取当前状态。 1181 1182**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1183 1184**系统接口:** 该接口为系统接口 1185 1186| 名称 | 类型 | 说明 | 1187| -------- | ------ | ---------------------- | 1188| idle | string | 视频录制空闲。 | 1189| prepared | string | 视频录制参数设置完成。 | 1190| playing | string | 视频正在录制。 | 1191| paused | string | 视频暂停录制。 | 1192| stopped | string | 视频录制停止。 | 1193| error | string | 错误状态。 | 1194 1195## VideoRecorderConfig<sup>9+</sup> 1196 1197表示视频录制的参数设置。 1198 1199通过audioSourceType和videoSourceType区分纯视频录制和音视频录制(纯音频录制请使用[AVRecorder](js-apis-media.md#avrecorder9)或[AudioRecorder](js-apis-media.md#audiorecorderdeprecated))。纯视频录制时,仅需要设置videoSourceType;音视频录制时,audioSourceType和videoSourceType均需要设置。 1200 1201**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1202 1203**系统接口:** 该接口为系统接口 1204 1205| 名称 | 类型 | 必填 | 说明 | 1206| --------------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | 1207| audioSourceType | [AudioSourceType](js-apis-media.md#audiosourcetype9) | 否 | 视频录制的音频源类型,选择音频录制时必填。 | 1208| videoSourceType | [VideoSourceType](js-apis-media.md#videosourcetype9) | 是 | 视频录制的视频源类型。 | 1209| profile | [VideoRecorderProfile](#videorecorderprofile9) | 是 | 视频录制的profile。 | 1210| rotation | number | 否 | 录制的视频旋转角度,仅支持0,90,180,270,默认值为0。 | 1211| location | [Location](js-apis-media.md#location) | 否 | 录制视频的地理位置,默认不记录地理位置信息。 | 1212| url | string | 是 | 视频输出URL:fd://xx (fd number)<br/> | 1213 1214## VideoRecorderProfile<sup>9+</sup> 1215 1216视频录制的配置文件。 1217 1218**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder 1219 1220**系统接口:** 该接口为系统接口 1221 1222| 名称 | 类型 | 必填 | 说明 | 1223| ---------------- | -------------------------------------------- | ---- | ---------------- | 1224| audioBitrate | number | 否 | 音频编码比特率,选择音频录制时必填。 | 1225| audioChannels | number | 否 | 音频采集声道数,选择音频录制时必填。 | 1226| audioCodec | [CodecMimeType](js-apis-media.md#codecmimetype8) | 否 | 音频编码格式,选择音频录制时必填。 | 1227| audioSampleRate | number | 否 | 音频采样率,选择音频录制时必填。 | 1228| fileFormat | [ContainerFormatType](js-apis-media.md#containerformattype8) | 是 | 文件的容器格式。 | 1229| videoBitrate | number | 是 | 视频编码比特率。 | 1230| videoCodec | [CodecMimeType](js-apis-media.md#codecmimetype8) | 是 | 视频编码格式。 | 1231| videoFrameWidth | number | 是 | 录制视频帧的宽。 | 1232| videoFrameHeight | number | 是 | 录制视频帧的高。 | 1233| videoFrameRate | number | 是 | 录制视频帧率。 | 1234 1235## WatermarkConfig<sup>13+</sup> 1236 1237设置给AVRecorder的水印相关配置,该位置以画面的左上角为开始点。 1238 1239**系统能力:** SystemCapability.Multimedia.Media.Core 1240 1241**系统接口:** 该接口为系统接口 1242 1243| 名称 | 类型 | 必填 | 说明 | 1244| --------- | ------ | ---- | ---------------- | 1245| top | number | 是 | 显示位置,距离图像顶部的像素偏移量。 | 1246| left | number | 是 | 显示位置,距离图像左部的像素偏移量。 | 1247 1248## ScreenCaptureMonitor<sup>18+</sup> 1249 1250录屏状态监控类,用于查询和监听系统录屏的录屏状态。在调用ScreenCaptureMonitor方法前,需要先通过[getScreenCaptureMonitor()](#mediagetscreencapturemonitor18)构建一个[ScreenCaptureMonitor](#screencapturemonitor18)实例。 1251 1252### 属性 1253 1254**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 1255 1256**系统接口:** 该接口为系统接口。 1257 1258| 名称 | 类型 | 可读 | 可写 | 说明 | 1259| ------------------ | -------------------------------------- | ---- | ---- | ---------------- | 1260| isSystemScreenRecorderWorking<sup>18+</sup> | bool | 是 | 否 | 系统录屏是否处于录屏状态。 | 1261 1262### on('systemScreenRecorder')<sup>18+</sup> 1263 1264on(type: 'systemScreenRecorder', callback: Callback\<ScreenCaptureEvent>): void 1265 1266开始订阅系统录屏的录屏状态。当上报ScreenCaptureEvent事件后,用户可以根据ScreenCaptureEvent事件得知系统录屏当前处于开启还是停止的状态。 1267 1268**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 1269 1270**系统接口:** 该接口为系统接口。 1271 1272**参数:** 1273 1274| 参数名 | 类型 | 必填 | 说明 | 1275| -------- | ------------- | ---- | ------------------------------------------------------------ | 1276| type | string | 是 | 录屏状态回调类型'systemScreenRecorder'。<br/>- 'systemScreenRecorder':系统录屏应用的录屏状态发生变化,触发该事件。 | 1277| callback | function | 是 | 系统录屏状态回调。[ScreenCaptureEvent](#screencaptureevent18)表示切换到的状态。 | 1278 1279**错误码:** 1280 1281以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1282 1283| 错误码ID | 错误信息 | 1284| -------- | --------------------------------- | 1285| 202 | Not System App. | 1286 1287**示例:** 1288 1289```ts 1290 1291// 当系统录屏应用的录屏状态发生变化时通过此订阅事件上报。 1292screenCaptureMonitor.on('systemScreenRecorder', (event: media.ScreenCaptureEvent) => { 1293 // 设置'systemScreenRecorder'事件回调。 1294 console.info(`system ScreenRecorder event: ${event}`); 1295}) 1296``` 1297 1298### off('systemScreenRecorder')<sup>18+</sup> 1299 1300off(type: 'systemScreenRecorder', callback?: Callback\<ScreenCaptureEvent>): void 1301 1302取消订阅系统录屏的录屏状态。 1303 1304**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 1305 1306**系统接口:** 该接口为系统接口。 1307 1308**参数:** 1309 1310| 参数名 | 类型 | 必填 | 说明 | 1311| -------- | ------------- | ---- | ------------------------------------------------------------ | 1312| type | string | 是 | 录屏状态回调类型'systemScreenRecorder'。<br/>- 'systemScreenRecorder':系统录屏应用的录屏状态发生变化,触发该事件。 | 1313| callback | function | 否 | 系统录屏状态回调。[ScreenCaptureEvent](#screencaptureevent18)表示切换到的状态,不填此参数则会取消最后一次订阅事件。 | 1314 1315**错误码:** 1316 1317以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1318 1319| 错误码ID | 错误信息 | 1320| -------- | --------------------------------- | 1321| 202 | Not System App. | 1322 1323**示例:** 1324 1325```ts 1326screenCaptureMonitor.off('systemScreenRecorder'); 1327``` 1328 1329## ScreenCaptureEvent<sup>18+</sup> 1330 1331系统录屏应用录屏状态的枚举值。 1332 1333**系统能力:** SystemCapability.Multimedia.Media.AVScreenCapture 1334 1335**系统接口:** 该接口为系统接口。 1336 1337| 名称 | 值 | 说明 | 1338| ------------------------ | --------------- | ------------------------------------------------------------ | 1339| SCREENCAPTURE_STARTED | 0 | 表示系统录屏应用开始录屏。 | 1340| SCREENCAPTURE_STOPPED | 1 | 表示系统录屏应用停止录屏。 | 1341 1342