• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AVScreenCapture
2
3
4## 概述
5
6调用本模块下的接口,应用可以完成屏幕录制的功能。
7
8**系统能力**:SystemCapability.Multimedia.Media.AVScreenCapture
9
10**起始版本:**
11
1210
13
14
15## 汇总
16
17
18### 文件
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [native_avscreen_capture.h](native__avscreen__capture_8h.md) | 声明用于构造屏幕录制对象的Native API。<br>**引用文件**:<multimedia/player_framework/native_avscreen_capture.h> <br>**库**:libnative_avscreen_capture.so |
23| [native_avscreen_capture_base.h](native__avscreen__capture__base_8h.md) | 声明用于运行屏幕录制通用的结构体、字符常量、枚举。<br>**引用文件**:<multimedia/player_framework/native_avscreen_capture_base.h> <br>**库**:libnative_avscreen_capture.so |
24| [native_avscreen_capture_errors.h](native__avscreen__capture__errors_8h.md) | 声明用于运行屏幕录制过程中接口调用的错误码说明。<br>**引用文件**:<multimedia/player_framework/native_avscreen_capture_errors.h> <br>**库**:libnative_avscreen_capture.so |
25
26
27### 结构体
28
29| 名称 | 描述 |
30| -------- | -------- |
31| [OH_AudioCaptureInfo](_o_h___audio_capture_info.md) | 音频录制信息。 |
32| [OH_AudioEncInfo](_o_h___audio_enc_info.md) | 音频编码信息。<br>**说明:** 预留接口,将在后续版本提供。 |
33| [OH_AudioInfo](_o_h___audio_info.md) | 音频录制参数。 |
34| [OH_VideoCaptureInfo](_o_h___video_capture_info.md) | 视频采集信息。 |
35| [OH_VideoEncInfo](_o_h___video_enc_info.md) | 视频编码信息。 <br>**说明:** 预留接口,将在后续版本提供。|
36| [OH_VideoInfo](_o_h___video_info.md) | 视频录制参数。 |
37| [OH_RecorderInfo](_o_h___recorder_info.md) | 录制文件信息。 <br>**说明:** 预留接口,将在后续版本提供。|
38| [OH_AVScreenCaptureConfig](_o_h___a_v_screen_capture_config.md) | 屏幕录制配置参数。 |
39| [OH_AVScreenCaptureCallback](_o_h___a_v_screen_capture_callback.md) | OH_AVScreenCapture中所有异步回调函数指针的集合。 |
40| [OH_Rect](_o_h___rect.md) | 定义录屏界面的宽高以及画面信息。 |
41| [OH_AudioBuffer](_o_h___audio_buffer.md) | 定义了音频数据的大小,类型,时间戳等配置信息。 |
42
43
44### 类型定义
45
46| 名称 | 描述 |
47| -------- | -------- |
48| [OH_NativeBuffer](#oh_nativebuffer) | 提供录屏的视频原始码流类。 |
49| [OH_AVScreenCapture](#oh_avscreencapture) | 通过OH_AVScreenCapture可以获取视频与音频的原始码流。 |
50| [OH_CaptureMode](#oh_capturemode) | 枚举,表示屏幕录制的不同模式。 |
51| [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) | 枚举,表示屏幕录制时的音频源类型。 |
52| [OH_AudioCodecFormat](#oh_audiocodecformat) | 枚举,表示音频编码格式。 |
53| [OH_VideoCodecFormat](#oh_videocodecformat) | 枚举,表示视频编码格式。 |
54| [OH_DataType](#oh_datatype) | 枚举,表示屏幕录制流的数据格式。 |
55| [OH_VideoSourceType](#oh_videosourcetype) | 枚举,表示视频源格式。 |
56| [OH_ContainerFormatType](#oh_containerformattype) | 枚举,表示屏幕录制生成的文件类型。<br>**说明:** 预留接口,将在后续版本提供。 |
57| [OH_AudioCaptureInfo](#oh_audiocaptureinfo) | 音频录制信息。 |
58| [OH_AudioEncInfo](#oh_audioencinfo) | 音频编码信息。 <br>**说明:** 预留接口,将在后续版本提供。|
59| [OH_AudioInfo](#oh_audioinfo) | 音频录制参数。 |
60| [OH_VideoCaptureInfo](#oh_videocaptureinfo) | 视频采集信息。 |
61| [OH_VideoEncInfo](#oh_videoencinfo) | 视频编码信息。<br>**说明:** 预留接口,将在后续版本提供。 |
62| [OH_VideoInfo](#oh_videoinfo) | 视频录制参数。 |
63| [OH_RecorderInfo](#oh_recorderinfo) | 录制文件信息。 |
64| [OH_AVScreenCaptureConfig](#oh_avscreencaptureconfig) | 屏幕录制配置参数。 |
65| (\*[OH_AVScreenCaptureOnError](#oh_avscreencaptureonerror)) ([OH_AVScreenCapture](#oh_avscreencapture) \*capture, int32_t errorCode) | 当OH_AVScreenCapture实例运行出错时,将调用函数指针。 |
66| (\*[OH_AVScreenCaptureOnAudioBufferAvailable](#oh_avscreencaptureonaudiobufferavailable)) ([OH_AVScreenCapture](#oh_avscreencapture) \*capture, bool isReady, [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) type) | 当OH_AVScreenCapture操作期间音频缓冲区可用时,将调用函数指针。 |
67| (\*[OH_AVScreenCaptureOnVideoBufferAvailable](#oh_avscreencaptureonvideobufferavailable)) ([OH_AVScreenCapture](#oh_avscreencapture) \*capture, bool isReady) | 当OH_AVScreenCapture操作期间视频缓冲区可用时,将调用函数指针。 |
68| [OH_AVScreenCaptureCallback](#oh_avscreencapturecallback) | OH_AVScreenCapture中所有异步回调函数指针的集合。 |
69| [OH_Rect](#oh_rect) | 定义录屏界面的宽高以及画面信息。 |
70| [OH_AudioBuffer](#oh_audiobuffer) | 定义了音频数据的大小,类型,时间戳等配置信息。 |
71| [OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode) | 屏幕录制过程中产生的不同结果码。 |
72
73
74### 枚举
75
76| 名称 | 描述 |
77| -------- | -------- |
78| [OH_CaptureMode](#oh_capturemode) { OH_CAPTURE_HOME_SCREEN = 0, OH_CAPTURE_SPECIFIED_SCREEN = 1, OH_CAPTURE_SPECIFIED_WINDOW = 2, OH_CAPTURE_INVAILD = -1 } | 枚举,表示屏幕录制的不同模式。 |
79| [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) {<br/>OH_SOURCE_INVALID = -1, OH_SOURCE_DEFAULT = 0, OH_MIC = 1, OH_ALL_PLAYBACK = 2,<br/>OH_APP_PLAYBACK = 3<br/>} | 枚举,表示屏幕录制时的音频源类型。 |
80| [OH_AudioCodecFormat](#oh_audiocodecformat) { OH_AUDIO_DEFAULT = 0, OH_AAC_LC = 3, OH_AUDIO_CODEC_FORMAT_BUTT } | 枚举,表示音频编码格式。 |
81| [OH_VideoCodecFormat](#oh_videocodecformat) {<br/>OH_VIDEO_DEFAULT = 0, OH_H264 = 2, OH_H265 = 4, OH_MPEG4 = 6,<br/>OH_VP8 = 8, OH_VP9 = 10, OH_VIDEO_CODEC_FORMAT_BUTT<br/>} | 枚举,表示视频编码格式。 |
82| [OH_DataType](#oh_datatype) { OH_ORIGINAL_STREAM = 0, OH_ENCODED_STREAM = 1, OH_CAPTURE_FILE = 2, OH_INVAILD = -1 } | 枚举,表示屏幕录制流的数据格式。 |
83| [OH_VideoSourceType](#oh_videosourcetype) { OH_VIDEO_SOURCE_SURFACE_YUV = 0, OH_VIDEO_SOURCE_SURFACE_ES, OH_VIDEO_SOURCE_SURFACE_RGBA, OH_VIDEO_SOURCE_BUTT } | 枚举,表示视频源格式。 |
84| [OH_ContainerFormatType](#oh_containerformattype) { CFT_MPEG_4A = 0, CFT_MPEG_4 = 1 } | 枚举,表示屏幕录制生成的文件类型。<br>**说明:** 预留接口,将在后续版本提供。 |
85| [OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode) {<br/>AV_SCREEN_CAPTURE_ERR_BASE = 0, AV_SCREEN_CAPTURE_ERR_OK = AV_SCREEN_CAPTURE_ERR_BASE, AV_SCREEN_CAPTURE_ERR_NO_MEMORY = AV_SCREEN_CAPTURE_ERR_BASE + 1, AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT = AV_SCREEN_CAPTURE_ERR_BASE + 2,<br/>AV_SCREEN_CAPTURE_ERR_INVALID_VAL = AV_SCREEN_CAPTURE_ERR_BASE + 3, AV_SCREEN_CAPTURE_ERR_IO = AV_SCREEN_CAPTURE_ERR_BASE + 4, AV_SCREEN_CAPTURE_ERR_TIMEOUT = AV_SCREEN_CAPTURE_ERR_BASE + 5, AV_SCREEN_CAPTURE_ERR_UNKNOWN = AV_SCREEN_CAPTURE_ERR_BASE + 6,<br/>AV_SCREEN_CAPTURE_ERR_SERVICE_DIED = AV_SCREEN_CAPTURE_ERR_BASE + 7, AV_SCREEN_CAPTURE_ERR_INVALID_STATE = AV_SCREEN_CAPTURE_ERR_BASE + 8, AV_SCREEN_CAPTURE_ERR_UNSUPPORT = AV_SCREEN_CAPTURE_ERR_BASE + 9, AV_SCREEN_CAPTURE_ERR_EXTEND_START = AV_SCREEN_CAPTURE_ERR_BASE + 100<br/>} | 屏幕录制过程中产生的不同结果码。 |
86
87
88### 函数
89
90| 名称 | 描述 |
91| -------- | -------- |
92| [OH_AVScreenCapture_Create](#oh_avscreencapture_create) (void) | 实例化对象,创建OH_AVScreenCapture。 |
93| [OH_AVScreenCapture_Init](#oh_avscreencapture_init) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture, [OH_AVScreenCaptureConfig](_o_h___a_v_screen_capture_config.md) config) | 初始化OH_AVScreenCapture相关参数。 |
94| [OH_AVScreenCapture_StartScreenCapture](#oh_avscreencapture_startscreencapture) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture) | 开始录屏,采集原始码流。调用后可以通过回调的监听(OH_AVScreenCaptureOnAudioBufferAvailable,OH_AVScreenCaptureOnVideoBufferAvailable)来监听当前是否有码流的产生。 |
95| [OH_AVScreenCapture_StopScreenCapture](#oh_avscreencapture_stopscreencapture) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture) | 结束录屏,与OH_AVScreenCapture_StartScreenCapture配合使用。调用后针对调用该接口的应用会停止录屏或屏幕共享,释放麦克风。 |
96| [OH_AVScreenCapture_StartScreenRecording](#oh_avscreencapture_startscreenrecording) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture) | 启动录屏,调用此接口,可采集编码后的码流。<br>**说明:** 预留接口,将在后续版本提供。 |
97| [OH_AVScreenCapture_StopScreenRecording](#oh_avscreencapture_stopscreenrecording) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture) | 停止录屏,与OH_AVScreenCapture_StartScreenRecording配合使用。 <br>**说明:** 预留接口,将在后续版本提供。|
98| [OH_AVScreenCapture_AcquireAudioBuffer](#oh_avscreencapture_acquireaudiobuffer) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture, [OH_AudioBuffer](_o_h___audio_buffer.md) \*\*audiobuffer, [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) type) | 获取音频buffer,应用在调用时,需要对audiobuffer分配对应结构体大小的内存,否则会影响拿到音频buffer的获取。 |
99| [OH_AVScreenCapture_AcquireVideoBuffer](#oh_avscreencapture_acquirevideobuffer) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture, int32_t \*fence, int64_t \*timestamp, struct [OH_Rect](_o_h___rect.md) \*region) | 获取视频buffer,应用在调用时,通过此接口来获取到视频的buffer以及时间戳等信息。 |
100| [OH_AVScreenCapture_ReleaseAudioBuffer](#oh_avscreencapture_releaseaudiobuffer) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture, [OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) type) | 根据音频类型释放buffer。 |
101| [OH_AVScreenCapture_ReleaseVideoBuffer](#oh_avscreencapture_releasevideobuffer) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture) | 根据视频类型释放buffer。 |
102| [OH_AVScreenCapture_SetCallback](#oh_avscreencapture_setcallback) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture, struct [OH_AVScreenCaptureCallback](_o_h___a_v_screen_capture_callback.md) callback) | 设置监听接口,通过设置监听,可以监听到调用过程中的错误信息,以及是否有可用的视频buffer和音频buffer。 |
103| [OH_AVScreenCapture_Release](#oh_avscreencapture_release) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture) | 释放创建的OH_AVScreenCapture实例,对应OH_AVScreenCapture_Create。 |
104| [OH_AVScreenCapture_SetMicrophoneEnabled](#oh_avscreencapture_setmicrophoneenabled) (struct [OH_AVScreenCapture](#oh_avscreencapture) \*capture, bool isMicrophone) | 设置麦克风开关。 |
105
106
107## 类型定义说明
108
109
110### OH_AudioBuffer
111
112```
113typedef struct OH_AudioBuffer OH_AudioBuffer
114```
115
116**描述:**
117
118定义了音频数据的大小,类型,时间戳等配置信息。
119
120**系统能力:**
121
122SystemCapability.Multimedia.Media.AVScreenCapture
123
124
125### OH_AudioCaptureInfo
126
127```
128typedef struct OH_AudioCaptureInfo OH_AudioCaptureInfo
129```
130
131**描述:**
132
133音频录制信息。
134
135**系统能力:**
136
137SystemCapability.Multimedia.Media.AVScreenCapture
138
139
140### OH_AudioCaptureSourceType
141
142```
143typedef enum OH_AudioCaptureSourceType OH_AudioCaptureSourceType
144```
145
146**描述:**
147
148枚举,表示屏幕录制时的音频源类型。
149
150**系统能力:**
151
152SystemCapability.Multimedia.Media.AVScreenCapture
153
154
155### OH_AudioCodecFormat
156
157```
158typedef enum OH_AudioCodecFormat OH_AudioCodecFormat
159```
160
161**描述:**
162
163枚举,表示音频编码格式。
164
165**系统能力:**
166
167SystemCapability.Multimedia.Media.AVScreenCapture
168
169
170### OH_AudioEncInfo
171
172```
173typedef struct OH_AudioEncInfo OH_AudioEncInfo
174```
175
176**描述:**
177
178音频编码信息。
179
180> **说明:**
181>
182> 预留接口,将在后续版本提供。
183
184**系统能力:**
185
186SystemCapability.Multimedia.Media.AVScreenCapture
187
188
189### OH_AudioInfo
190
191```
192typedef struct OH_AudioInfo OH_AudioInfo
193```
194
195**描述:**
196
197音频录制参数。
198
199**系统能力:**
200
201SystemCapability.Multimedia.Media.AVScreenCapture
202
203
204### OH_AVSCREEN_CAPTURE_ErrCode
205
206```
207typedef enum OH_AVSCREEN_CAPTURE_ErrCode OH_AVSCREEN_CAPTURE_ErrCode
208```
209
210**描述:**
211
212屏幕录制过程中产生的不同结果码。
213
214**系统能力:**
215
216SystemCapability.Multimedia.Media.AVScreenCapture
217
218
219### OH_AVScreenCapture
220
221```
222typedef struct OH_AVScreenCapture OH_AVScreenCapture
223```
224
225**描述:**
226
227通过OH_AVScreenCapture可以获取视频与音频的原始码流。
228
229**系统能力:**
230
231SystemCapability.Multimedia.Media.AVScreenCapture
232
233
234### OH_AVScreenCaptureCallback
235
236```
237typedef struct OH_AVScreenCaptureCallback OH_AVScreenCaptureCallback
238```
239
240**描述:**
241
242OH_AVScreenCapture中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVScreenCapture实例中, 并处理回调上报的信息,以保证OH_AVScreenCapture的正常运行。
243
244**参数:**
245
246| 名称 | 描述 |
247| -------- | -------- |
248| onError | 监控录屏调用操作错误,请参见[OH_AVScreenCaptureOnError](#oh_avscreencaptureonerror)。 |
249| onAudioBufferAvailable | 监控音频码流是否有数据产生,请参见[OH_AVScreenCaptureOnAudioBufferAvailable](#oh_avscreencaptureonaudiobufferavailable)。 |
250| onVideoBufferAvailable | 监控视频码流是否有数据产生,请参见[OH_AVScreenCaptureOnVideoBufferAvailable](#oh_avscreencaptureonvideobufferavailable)。 |
251
252**系统能力:**
253
254SystemCapability.Multimedia.Media.AVScreenCapture
255
256
257### OH_AVScreenCaptureConfig
258
259```
260typedef struct OH_AVScreenCaptureConfig OH_AVScreenCaptureConfig
261```
262
263**描述:**
264
265屏幕录制配置参数。
266
267**系统能力:**
268
269SystemCapability.Multimedia.Media.AVScreenCapture
270
271
272### OH_AVScreenCaptureOnAudioBufferAvailable
273
274```
275typedef void(* OH_AVScreenCaptureOnAudioBufferAvailable) (OH_AVScreenCapture *capture, bool isReady, OH_AudioCaptureSourceType type)
276```
277
278**描述:**
279
280当OH_AVScreenCapture操作期间音频缓冲区可用时,将调用函数指针。
281
282**参数:**
283
284| 名称 | 描述 |
285| -------- | -------- |
286| capture | 指向OH_AVScreenCapture实例的指针。 |
287| isReady | 音频缓冲区是否可用。 |
288| type | 音频源类型。 |
289
290**系统能力:**
291
292SystemCapability.Multimedia.Media.AVScreenCapture
293
294
295### OH_AVScreenCaptureOnError
296
297```
298typedef void(* OH_AVScreenCaptureOnError) (OH_AVScreenCapture *capture, int32_t errorCode)
299```
300
301**描述:**
302
303当OH_AVScreenCapture实例运行出错时,将调用函数指针。
304
305**参数:**
306
307| 名称 | 描述 |
308| -------- | -------- |
309| capture | 指向OH_AVScreenCapture实例的指针。 |
310| errorCode | 指定错误码。 |
311
312**系统能力:**
313
314SystemCapability.Multimedia.Media.AVScreenCapture
315
316
317### OH_AVScreenCaptureOnVideoBufferAvailable
318
319```
320typedef void(* OH_AVScreenCaptureOnVideoBufferAvailable) (OH_AVScreenCapture *capture, bool isReady)
321```
322
323**描述:**
324
325当OH_AVScreenCapture操作期间视频缓冲区可用时,将调用函数指针。
326
327**参数:**
328
329| 名称 | 描述 |
330| -------- | -------- |
331| capture | 指向OH_AVScreenCapture实例的指针。 |
332| isReady | 视频缓冲区是否可用。 |
333
334**系统能力:**
335
336SystemCapability.Multimedia.Media.AVScreenCapture
337
338
339### OH_CaptureMode
340
341```
342typedef enum OH_CaptureModeOH_CaptureMode
343```
344
345**描述:**
346
347枚举,表示屏幕录制的不同模式。
348
349**系统能力:**
350
351SystemCapability.Multimedia.Media.AVScreenCapture
352
353
354### OH_ContainerFormatType
355
356```
357typedef enum OH_ContainerFormatType OH_ContainerFormatType
358```
359
360**描述:**
361
362枚举,表示屏幕录制生成的文件类型。
363
364> **说明:**
365>
366> 预留接口,将在后续版本提供。
367
368**系统能力:**
369
370SystemCapability.Multimedia.Media.AVScreenCapture
371
372
373### OH_DataType
374
375```
376typedef enum OH_DataType OH_DataType
377```
378
379**描述:**
380
381枚举,表示屏幕录制流的数据格式。
382
383**系统能力:**
384
385SystemCapability.Multimedia.Media.AVScreenCapture
386
387
388### OH_NativeBuffer
389
390```
391typedef struct OH_NativeBuffer OH_NativeBuffer
392```
393
394**描述:**
395
396提供录屏的视频原始码流类。
397
398**系统能力:**
399
400SystemCapability.Multimedia.Media.AVScreenCapture
401
402
403### OH_RecorderInfo
404
405```
406typedef struct OH_RecorderInfo OH_RecorderInfo
407```
408
409**描述:**
410
411录制文件信息。
412
413**系统能力:**
414
415SystemCapability.Multimedia.Media.AVScreenCapture
416
417
418### OH_Rect
419
420```
421typedef struct OH_Rect OH_Rect
422```
423
424**描述:**
425
426定义录屏界面的宽高以及画面信息。
427
428**系统能力:**
429
430SystemCapability.Multimedia.Media.AVScreenCapture
431
432
433### OH_VideoCaptureInfo
434
435```
436typedef struct OH_VideoCaptureInfo OH_VideoCaptureInfo
437```
438
439**描述:**
440
441视频采集信息。
442
443**系统能力:**
444
445SystemCapability.Multimedia.Media.AVScreenCapture
446
447
448### OH_VideoCodecFormat
449
450```
451typedef enum OH_VideoCodecFormat OH_VideoCodecFormat
452```
453
454**描述:**
455
456枚举,表示视频编码格式。
457
458**系统能力:**
459
460SystemCapability.Multimedia.Media.AVScreenCapture
461
462
463### OH_VideoEncInfo
464
465```
466typedef struct OH_VideoEncInfo OH_VideoEncInfo
467```
468
469**描述:**
470
471视频编码参数。
472
473> **说明:**
474>
475> 预留接口,将在后续版本提供。
476
477**系统能力:**
478
479SystemCapability.Multimedia.Media.AVScreenCapture
480
481
482### OH_VideoInfo
483
484```
485typedef struct OH_VideoInfo OH_VideoInfo
486```
487
488**描述:**
489
490视频录制参数。
491
492**系统能力:**
493
494SystemCapability.Multimedia.Media.AVScreenCapture
495
496
497### OH_VideoSourceType
498
499```
500typedef enum OH_VideoSourceType OH_VideoSourceType
501```
502
503**描述:**
504
505枚举,表示视频源格式。
506
507**系统能力:**
508
509SystemCapability.Multimedia.Media.AVScreenCapture
510
511
512## 枚举类型说明
513
514
515### OH_AudioCaptureSourceType
516
517```
518enum OH_AudioCaptureSourceType
519```
520
521**描述:**
522
523枚举,表示屏幕录制时的音频源类型。
524
525**系统能力:**
526
527SystemCapability.Multimedia.Media.AVScreenCapture
528
529| 枚举值 | 描述 |
530| -------- | -------- |
531| OH_SOURCE_INVALID | 无效音频源。 |
532| OH_SOURCE_DEFAULT | 默认音频源,默认为MIC。 |
533| OH_MIC | 麦克风录制的外部音频流。 |
534| OH_ALL_PLAYBACK | 系统播放的所有内部音频流。 |
535| OH_APP_PLAYBACK | 指定应用播放的内部音频流。 |
536
537
538### OH_AudioCodecFormat
539
540```
541enum OH_AudioCodecFormat
542```
543
544**描述:**
545
546枚举,表示音频编码格式。
547
548**系统能力:**
549
550SystemCapability.Multimedia.Media.AVScreenCapture
551
552| 枚举值 | 描述 |
553| -------- | -------- |
554| OH_AUDIO_DEFAULT | 默认音频编码,默认为AAC_LC。 |
555| OH_AAC_LC | AAC_LC音频编码。 |
556| OH_AUDIO_CODEC_FORMAT_BUTT | 无效格式。 |
557
558
559### OH_AVSCREEN_CAPTURE_ErrCode
560
561```
562enum OH_AVSCREEN_CAPTURE_ErrCode
563```
564
565**描述:**
566
567屏幕录制过程中产生的不同结果码。
568
569**系统能力:**
570
571SystemCapability.Multimedia.Media.AVScreenCapture
572
573| 枚举值 | 描述 |
574| -------- | -------- |
575| AV_SCREEN_CAPTURE_ERR_BASE | 接口调用错误返回的基础值。 |
576| AV_SCREEN_CAPTURE_ERR_OK | 操作成功。 |
577| AV_SCREEN_CAPTURE_ERR_NO_MEMORY | 内存不足。 |
578| AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT | 不允许操作。 |
579| AV_SCREEN_CAPTURE_ERR_INVALID_VAL | 无效参数。 |
580| AV_SCREEN_CAPTURE_ERR_IO | 输入输出流异常。 |
581| AV_SCREEN_CAPTURE_ERR_TIMEOUT | 网络超时。 |
582| AV_SCREEN_CAPTURE_ERR_UNKNOWN | 未知错误。 |
583| AV_SCREEN_CAPTURE_ERR_SERVICE_DIED | 媒体服务已终止。 |
584| AV_SCREEN_CAPTURE_ERR_INVALID_STATE | 当前状态不支持此操作。 |
585| AV_SCREEN_CAPTURE_ERR_UNSUPPORT | 不支持的接口。 |
586| AV_SCREEN_CAPTURE_ERR_EXTEND_START | 预期之外的错误。 |
587
588
589### OH_CaptureMode
590
591```
592enum OH_CaptureMode
593```
594
595**描述:**
596
597枚举,表示屏幕录制的不同模式。
598
599**系统能力:**
600
601SystemCapability.Multimedia.Media.AVScreenCapture
602
603| 枚举值 | 描述 |
604| -------- | -------- |
605| OH_CAPTURE_HOME_SCREEN | 录制主屏幕。 |
606| OH_CAPTURE_SPECIFIED_SCREEN | 录制指定屏幕。<br>**说明:** 预留接口,将在后续版本提供。 |
607| OH_CAPTURE_SPECIFIED_WINDOW | 录制指定窗口。 <br>**说明:** 预留接口,将在后续版本提供。|
608| OH_CAPTURE_INVAILD | 无效模式。 |
609
610
611### OH_ContainerFormatType
612
613```
614enum OH_ContainerFormatType
615```
616
617**描述:**
618
619枚举,表示屏幕录制生成的文件类型。
620
621> **说明:**
622>
623> 预留接口,将在后续版本提供。
624
625**系统能力:**
626
627SystemCapability.Multimedia.Media.AVScreenCapture
628
629| 枚举值 | 描述 |
630| -------- | -------- |
631| CFT_MPEG_4A | 音频格式 m4a。 |
632| CFT_MPEG_4 | 视频格式 mp4。 |
633
634
635### OH_DataType
636
637```
638enum OH_DataType
639```
640
641**描述:**
642
643枚举,表示屏幕录制流的数据格式。
644
645**系统能力:**
646
647SystemCapability.Multimedia.Media.AVScreenCapture
648
649| 枚举值 | 描述 |
650| -------- | -------- |
651| OH_ORIGINAL_STREAM | 原始流格式,如YUV/RGBA/PCM等。 |
652| OH_ENCODED_STREAM | 编码格式,如H264/AAC等。 <br>**说明:** 预留接口,将在后续版本提供。 |
653| OH_CAPTURE_FILE | 保存文件格式,支持mp4。<br>**说明:** 预留接口,将在后续版本提供。 |
654| OH_INVAILD | 无效格式。 |
655
656
657### OH_VideoCodecFormat
658
659```
660enum OH_VideoCodecFormat
661```
662
663**描述:**
664
665枚举,表示视频编码格式。
666
667**系统能力:**
668
669SystemCapability.Multimedia.Media.AVScreenCapture
670
671| 枚举值 | 描述 |
672| -------- | -------- |
673| OH_VIDEO_DEFAULT | 默认视频编码,默认为H.264。 |
674| OH_H264 | H.264 |
675| OH_H265 | H.265/HEVC |
676| OH_MPEG4 | MPEG4 |
677| OH_VP8 | VP8 |
678| OH_VP9 | VP9 |
679| OH_VIDEO_CODEC_FORMAT_BUTT | 无效格式。 |
680
681
682### OH_VideoSourceType
683
684```
685enum OH_VideoSourceType
686```
687
688**描述:**
689
690枚举,表示视频源格式。
691
692**系统能力:**
693
694SystemCapability.Multimedia.Media.AVScreenCapture
695
696| 枚举值 | 描述 |
697| -------- | -------- |
698| OH_VIDEO_SOURCE_SURFACE_YUV | YUV格式。 |
699| OH_VIDEO_SOURCE_SURFACE_ES | raw格式。 |
700| OH_VIDEO_SOURCE_SURFACE_RGBA | RGBA格式。 |
701| OH_VIDEO_SOURCE_BUTT | 无效格式。 |
702
703
704## 函数说明
705
706
707### OH_AVScreenCapture_AcquireAudioBuffer()
708
709```
710OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_AcquireAudioBuffer (struct OH_AVScreenCapture * capture, OH_AudioBuffer ** audiobuffer, OH_AudioCaptureSourceType type )
711```
712
713**描述:**
714
715获取音频buffer,应用在调用时,需要对audiobuffer分配对应结构体大小的内存,否则会影响拿到音频buffer的获取。
716
717**参数:**
718
719| 名称 | 描述 |
720| -------- | -------- |
721| capture | 指向OH_AVScreenCapture实例的指针。 |
722| audiobuffer | 保存音频buffer的结构体,通过该结构体获取到音频buffer以及buffer的时间戳等信息。 |
723| type | 音频buffer的类型,区分是麦克风录制的外部流还是系统内部播放音频的内录流,详情请参阅[OH_AudioCaptureSourceType](#oh_audiocapturesourcetype) |
724
725**系统能力:**
726
727SystemCapability.Multimedia.Media.AVScreenCapture
728
729**返回:**
730
731执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
732
733
734### OH_AVScreenCapture_AcquireVideoBuffer()
735
736```
737OH_NativeBuffer* OH_AVScreenCapture_AcquireVideoBuffer (struct OH_AVScreenCapture * capture, int32_t * fence, int64_t * timestamp, struct OH_Rect * region )
738```
739
740**描述:**
741
742获取视频buffer,应用在调用时,通过此接口来获取到视频的buffer以及时间戳等信息。 buffer使用完成后,调用OH_AVScreenCapture_ReleaseVideoBuffer接口进行视频buffer的释放。
743
744**参数:**
745
746| 名称 | 描述 |
747| -------- | -------- |
748| capture | 指向OH_AVScreenCapture实例的指针。 |
749| fence | 用于同步的显示相关参数信息。 |
750| timestamp | 视频帧的时间戳。 |
751| region | 视频显示相关的坐标信息。 |
752
753**系统能力:**
754
755SystemCapability.Multimedia.Media.AVScreenCapture
756
757**返回:**
758
759执行成功返回OH_NativeBuffer对象,通过OH_NativeBuffer对象相关接口可以获取到视频buffer和分辨率等信息参数。
760
761
762### OH_AVScreenCapture_Create()
763
764```
765struct OH_AVScreenCapture* OH_AVScreenCapture_Create (void )
766```
767
768**描述:**
769
770实例化对象,创建OH_AVScreenCapture。可以通过调用OH_AVScreenCapture_Release释放实例。
771
772**系统能力:**
773
774SystemCapability.Multimedia.Media.AVScreenCapture
775
776**返回:**
777
778返回一个指向OH_AVScreenCapture实例的指针。
779
780
781### OH_AVScreenCapture_Init()
782
783```
784OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_Init (struct OH_AVScreenCapture * capture, OH_AVScreenCaptureConfig config )
785```
786
787**描述:**
788
789初始化OH_AVScreenCapture相关参数,包括下发的音频麦克风采样信息参数,音频内录相关参数(可选),视频分辨率相关参数。
790
791调用此函数,需要申请麦克风权限(ohos.permission.MICROPHONE)和截屏权限(ohos.permission.CAPTURE_SCREEN),否则会初始化失败导致无法正常录屏。
792
793**参数:**
794
795| 名称 | 描述 |
796| -------- | -------- |
797| capture | 指向OH_AVScreenCapture实例的指针。 |
798| config | 录屏初始化相关参数。 |
799
800**系统能力:**
801
802SystemCapability.Multimedia.Media.AVScreenCapture
803
804**返回:**
805
806执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅 [OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
807
808
809### OH_AVScreenCapture_Release()
810
811```
812OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_Release (struct OH_AVScreenCapture * capture)
813```
814
815**描述:**
816
817释放创建的OH_AVScreenCapture实例,对应OH_AVScreenCapture_Create。
818
819**参数:**
820
821| 名称 | 描述 |
822| -------- | -------- |
823| capture | 指向OH_AVScreenCapture实例的指针。 |
824
825**系统能力:**
826
827SystemCapability.Multimedia.Media.AVScreenCapture
828
829**返回:**
830
831执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
832
833
834### OH_AVScreenCapture_ReleaseAudioBuffer()
835
836```
837OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseAudioBuffer (struct OH_AVScreenCapture * capture, OH_AudioCaptureSourceType type )
838```
839
840**描述:**
841
842根据音频类型释放buffer。当某一帧音频buffer使用完成后,调用此接口进行释放对应的音频buffer。
843
844**参数:**
845
846| 名称 | 描述 |
847| -------- | -------- |
848| capture | 指向OH_AVScreenCapture实例的指针。 |
849| type | 音频buffer的类型,区分麦克风录制的外部流还是系统内部播放音频的内录流。 |
850
851**系统能力:**
852
853SystemCapability.Multimedia.Media.AVScreenCapture
854
855**返回:**
856
857执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
858
859
860### OH_AVScreenCapture_ReleaseVideoBuffer()
861
862```
863OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseVideoBuffer (struct OH_AVScreenCapture * capture)
864```
865
866**描述:**
867
868根据视频类型释放buffer。当某一帧视频buffer使用完成后,调用此接口进行释放对应的视频buffer。
869
870**参数:**
871
872| 名称 | 描述 |
873| -------- | -------- |
874| capture | 指向OH_AVScreenCapture实例的指针。 |
875
876**系统能力:**
877
878SystemCapability.Multimedia.Media.AVScreenCapture
879
880**返回:**
881
882执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
883
884
885### OH_AVScreenCapture_SetCallback()
886
887```
888OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCallback (struct OH_AVScreenCapture * capture, struct OH_AVScreenCaptureCallback callback )
889```
890
891**描述:**
892
893设置监听接口,通过设置监听,可以监听到调用过程中的错误信息,以及是否有可用的视频buffer和音频buffer。
894
895**参数:**
896
897| 名称 | 描述 |
898| -------- | -------- |
899| capture | 指向OH_AVScreenCapture实例的指针。 |
900| callback | [OH_AVScreenCaptureCallback](_o_h___a_v_screen_capture_callback.md)的结构体,保存相关回调函数指针。 |
901
902**系统能力:**
903
904SystemCapability.Multimedia.Media.AVScreenCapture
905
906**返回:**
907
908执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
909
910
911### OH_AVScreenCapture_SetMicrophoneEnabled()
912
913```
914OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetMicrophoneEnabled (struct OH_AVScreenCapture * capture, bool isMicrophone )
915```
916
917**描述:**
918
919设置麦克风开关。当isMicrophone为true时,则打开麦克风,通过调用OH_AVScreenCapture_StartScreenRecording和OH_AVScreenCapture_AcquireAudioBuffer可以正常获取到音频的麦克风原始PCM数据;isMicrophone为false时,获取到的音频数据为无声数据。
920
921**参数:**
922
923| 名称 | 描述 |
924| -------- | -------- |
925| capture | 指向OH_AVScreenCapture实例的指针。 |
926| isMicrophone | 麦克风开关参数。 |
927
928**系统能力:**
929
930SystemCapability.Multimedia.Media.AVScreenCapture
931
932**返回:**
933
934执行成功返回AV_SCREEN_CAPTURE_ERR_OK,否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
935
936
937### OH_AVScreenCapture_StartScreenCapture()
938
939```
940OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StartScreenCapture (struct OH_AVScreenCapture * capture)
941```
942
943**描述:**
944
945开始录屏,采集原始码流。调用后可以通过回调的监听(OH_AVScreenCaptureOnAudioBufferAvailable,OH_AVScreenCaptureOnVideoBufferAvailable)来监听当前是否有码流的产生。
946
947通过调用获取音频buffer(OH_AVScreenCapture_AcquireAudioBuffer)和视频buffer(OH_AVScreenCapture_ReleaseVideoBuffer)的接口来获取录屏的原始码流
948
949**参数:**
950
951| 名称 | 描述 |
952| -------- | -------- |
953| capture | 指向OH_AVScreenCapture实例的指针。 |
954
955**系统能力:**
956
957SystemCapability.Multimedia.Media.AVScreenCapture
958
959**返回:**
960
961执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
962
963
964### OH_AVScreenCapture_StartScreenRecording()
965
966```
967OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StartScreenRecording (struct OH_AVScreenCapture * capture)
968```
969
970**描述:**
971
972启动录屏,调用此接口,可采集编码后的码流。
973
974> **说明:**
975>
976> 预留接口,将在后续版本提供。
977
978**参数:**
979
980| 名称 | 描述 |
981| -------- | -------- |
982| capture | 指向OH_AVScreenCapture实例的指针。 |
983
984**系统能力:**
985
986SystemCapability.Multimedia.Media.AVScreenCapture
987
988**返回:**
989
990执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
991
992
993### OH_AVScreenCapture_StopScreenCapture()
994
995```
996OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StopScreenCapture (struct OH_AVScreenCapture * capture)
997```
998
999**描述:**
1000
1001结束录屏,与OH_AVScreenCapture_StartScreenCapture配合使用。调用后针对调用该接口的应用会停止录屏或屏幕共享,释放麦克风。
1002
1003**参数:**
1004
1005| 名称 | 描述 |
1006| -------- | -------- |
1007| capture | 指向OH_AVScreenCapture实例的指针。 |
1008
1009**系统能力:**
1010
1011SystemCapability.Multimedia.Media.AVScreenCapture
1012
1013**返回:**
1014
1015执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
1016
1017
1018### OH_AVScreenCapture_StopScreenRecording()
1019
1020```
1021OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StopScreenRecording (struct OH_AVScreenCapture * capture)
1022```
1023
1024**描述:**
1025
1026停止录屏,与OH_AVScreenCapture_StartScreenRecording配合使用。
1027
1028> **说明:**
1029>
1030> 预留接口,将在后续版本提供。
1031
1032**参数:**
1033
1034| 名称 | 描述 |
1035| -------- | -------- |
1036| capture | 指向OH_AVScreenCapture实例的指针。 |
1037
1038**系统能力:**
1039
1040SystemCapability.Multimedia.Media.AVScreenCapture
1041
1042**返回:**
1043
1044执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode)。
1045