提交 182f00c6 编写于 作者: W wangzx0705

upload the development guide

Signed-off-by: Nwangzx0705 <wangzx0705@thundersoft.com>
上级 ec27232b
...@@ -32,8 +32,7 @@ ...@@ -32,8 +32,7 @@
- [视频播放](video-playback.md) - [视频播放](video-playback.md)
- [视频录制](video-recording.md) - [视频录制](video-recording.md)
- 屏幕录制 - 屏幕录制
- [屏幕录制开发概述](avscreen-capture-overview.md) - [屏幕录制](avscreen-capture.md)
- [开发屏幕录制功能](avscreen-capture-development.md)
- 音视频编解码 - 音视频编解码
- [获取支持的编解码能力](obtain-supported-codecs.md) - [获取支持的编解码能力](obtain-supported-codecs.md)
- [音频编码](audio-encoding.md) - [音频编码](audio-encoding.md)
......
# 屏幕录制开发概述
## 如何选择屏幕录制开发方式
录屏取码流场景,主要用于直播类应用,应用需要获取录屏相关的音视频码流,然后通过流流转方式或者对接CDN服务器方式,达到直播时桌面共享的场景。应用配置完音视频相关参数后 ,可启动录制,在录制过程中可以控制麦克风的开关,达到mic音频是否在直播时播放,结束 直播时刻停止录制。
另外,有些应用有自己的编码器,因此需要获取的是原始码流,用于对接它内部自己的编码器 (比如:welink,内部采用webRTC,有自己的编码器)。有些应用需要把流发布到CDN服务 器,那么他就需要编码后的码流。
- [开发屏幕录制功能](avscreen-capture-development.md):用于音频输入的Native API,仅支持PCM格式,视频输入的Native API,仅支持YUV格式,需要应用持续读取音频数据和视频数据进行工作。应用可以在音频输出和视频输出后添加数据处理,要求开发者具备音频处理和视频处理的基础知识,适用于更专业、更多样化的媒体录制应用开发。
## 开发录制应用须知
应用可以调用麦克风录制音频,但该行为属于隐私敏感行为,在调用麦克风前,需要先向用户申请权限“ohos.permission.MICROPHONE”。
应用可以调用屏幕录制视频,但该行为属于隐私敏感行为,在调用屏幕录制前,需要先向用户申请权限“ohos.permission.CAPTURE_SCREEN”。
权限申请的流程请参考[访问控制授权申请指导](../security/accesstoken-guidelines.md)
# 开发屏幕录制功能 # 屏幕录制
屏幕录制功能主要有主屏幕录屏、指定物理屏录屏和应用内录屏。 屏幕录制功能主要有主屏幕录屏、指定物理屏录屏和应用内录屏。
...@@ -6,6 +6,18 @@ ...@@ -6,6 +6,18 @@
主屏幕录屏:录屏框架在制作录屏镜像时默认使用主屏;图形默认根据主屏生产录屏帧数据到显示数据缓冲队列;录屏框架从显示数据缓冲队列获取数据进行相应消费处理。 主屏幕录屏:录屏框架在制作录屏镜像时默认使用主屏;图形默认根据主屏生产录屏帧数据到显示数据缓冲队列;录屏框架从显示数据缓冲队列获取数据进行相应消费处理。
## 如何选择屏幕录制开发方式
录屏取码流场景,主要用于直播类应用,应用需要获取录屏相关的音视频码流,然后通过流的流转方式或者对接CDN服务器方式,达到直播时桌面共享的场景。应用配置完音视频相关参数后 ,可启动录制,在录制过程中可以控制麦克风的开关,达到mic音频是否在直播时播放,结束直播时刻停止录制。
另外某些应用有自己的编码器,因此需要获取的是原始码流,用于对接它内部自己的编码器(比如:welink,内部采用webRTC,有自己的编码器)。有些应用需要把流发布到CDN服务 器,那么他就需要编码后的码流。
## 开发录制应用须知
应用可以调用麦克风录制音频,但该行为属于隐私敏感行为,在调用麦克风前,需要先向用户申请权限“ohos.permission.MICROPHONE”。
应用可以调用屏幕录制视频,但该行为属于隐私敏感行为,在调用屏幕录制前,需要先向用户申请权限“ohos.permission.CAPTURE_SCREEN”。
权限申请的流程请参考[访问控制授权申请指导](../security/accesstoken-guidelines.md)
## 开发指导 ## 开发指导
使用AVScreenCapture录制屏幕涉及到AVScreenCapture实例的创建、音视频采集参数的配置、采集的开始与停止、资源的释放等。本开发指导将以一次录制屏幕数据的过程为例,向开发者讲解如何使用AVScreenCapturer进行屏幕录制,详细的API声明请参考[AVScreenCapture API参考](../reference/native-apis/_a_v_screen_capture.md) 使用AVScreenCapture录制屏幕涉及到AVScreenCapture实例的创建、音视频采集参数的配置、采集的开始与停止、资源的释放等。本开发指导将以一次录制屏幕数据的过程为例,向开发者讲解如何使用AVScreenCapturer进行屏幕录制,详细的API声明请参考[AVScreenCapture API参考](../reference/native-apis/_a_v_screen_capture.md)
......
# AVScreenCapture
## 概述
AVScreenCapture模块提供用于屏幕录制的函数。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**起始版本:**
10
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [native_avscreen_capture.h](native__avscreen_capture_8h.md) | 声明用于构造屏幕录制对象的Native API。<br>引用文件:<multimedia/player_framework/native_avscreen_capture.h>。 |
| [native_avscreen_capture_base.h](native__avscreen_capture_base_8h.md) | 声明用于运行屏幕录制通用的结构体、字符常量、枚举。<br>引用文件:<multimedia/player_framework/native_avscreen_capture_base.h>。 |
| [native_avscreen_capture_errors.h](native__avscreen_capture_errors_8h.md) | 声明用于运行屏幕录制过程中接口调用的错误码说明。<br>引用文件:<multimedia/player_framework/native_avscreen_capture_errors.h>。 |
### 函数
| 名称 | 描述 |
| -------- | -------- |
| \*[OH_AVScreenCapture_Create](#oh_avscreencapture_create) (void) | 实例化对象,创建OH_AVScreenCapture。 |
| [OH_AVScreenCapture_Init](#oh_avscreencapture_init) (OH_AVScreenCapture \*capture, OH_AVScreenCaptureConfig config) | 初始化录屏实例参数,实现对图形和音频模块的初始化工作。 |
| [OH_AVScreenCapture_StartScreenCapture](#oh_avscreencapture_startscreencapture) (OH_AVScreenCapture \*capture) | 开始录屏,调用后可以通过图形和音频模块的接口拿到视频和音频的原始码流。 |
| [OH_AVScreenCapture_StopScreenCapture](#oh_avscreencapture_stopscreencapture) (OH_AVScreenCapture \*capture) | 结束录屏,调用后针对调用该接口的应用会停止录屏或屏幕共享,释放麦克风。 |
| [OH_AVScreenCapture_AcquireAudioBuffer](#oh_avscreencapture_acquireaudiobuffer) (OH_AVScreenCapture \*capture, OH_AudioBuffer \*\*audiobuffer, OH_AudioCaptureSourceType type) | 获取音频原始码流接口,包括音频流的类型和长度信息。 |
| \*[OH_AVScreenCapture_AcquireVideoBuffer](#oh_avscreencapture_acquirevideobuffer) (OH_AVScreenCapture \*capture, int32_t \*fence, int64_t \*timestamp, struct OH_Rect \*region) | 获取视频原始码流接口,通过此接口可以获取视频码流以及每帧视频的信息。 |
| [OH_AVScreenCapture_ReleaseAudioBuffer](#oh_avscreencapture_releaseaudiobuffer) (OH_AVScreenCapture \*capture, OH_AudioCaptureSourceType type) | 根据音频类型释放音频buffer。 |
| [OH_AVScreenCapture_ReleaseVideoBuffer](#oh_avscreencapture_releasevideobuffer) (OH_AVScreenCapture \*capture) | 释放视频的buffer。 |
| [OH_AVScreenCapture_SetCallback](#oh_avscreencapture_setcallback) (OH_AVScreenCapture \*capture, OH_AVScreenCaptureCallback callback) | 设置回调的接口,用于回调录屏各类事件的监听。 |
| [OH_AVScreenCapture_SetMicrophoneEnabled](#oh_avscreencapture_setmicrophoneenabled) (OH_AVScreenCapture \*capture, bool isMicrophone) | 设置麦克风开关,关闭时,将获得无声的音频数据。 |
| [OH_AVScreenCapture_Release](#oh_avscreencapture_release) (OH_AVScreenCapture \*capture) | 释放录屏示例对象。 |
## 函数说明
### OH_AVScreenCapture_Create()
```
struct OH_AVScreenCapture *OH_AVScreenCapture_Create(void);
```
**描述:**
实例化对象,创建OH_AVScreenCapture。可以通过调用 OH_AVScreenCapture_Release 释放实例。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| void | 无需入参函数。 |
**返回:**
返回一个指向OH_AVScreenCapture实例的指针。
**起始版本:**
10
### OH_AVScreenCapture_Init()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_Init(struct OH_AVScreenCapture *capture, OH_AVScreenCaptureConfig config);
```
**描述:**
初始化OH_AVScreenCapture各参数,包括下发的音频麦克风采样信息参数,音频内录参数(可选),视频分辨率参数。
调用此函数,需要向申请麦克风权限(ohos.permission.MICROPHONE)和截屏权限(ohos.permission.CAPTURE_SCREEN),否则会初始化失败导致无法正常录屏。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
| config | 录屏初始化相关参数,详情请参阅[OH_AVScreenCaptureConfig](_a_v_screen_capture_base.md#oh_avscreencaptureconfig)。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_StartScreenCapture()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StartScreenCapture(struct OH_AVScreenCapture *capture);
```
**描述:**
开始录屏接口,调用该接口后,可以通过回调的监听(OH_AVScreenCaptureOnAudioBufferAvailable,OH_AVScreenCaptureOnVideoBufferAvailable)来监听当前是否有码流的产生。
通过调用获取音频buffer(OH_AVScreenCapture_AcquireAudioBuffer)和视频buffer(OH_AVScreenCapture_ReleaseVideoBuffer)的接口来获取录屏的原始码流。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_StopScreenCapture()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StopScreenCapture(struct OH_AVScreenCapture *capture);
```
**描述:**
停止录屏接口,用于停止录屏数据的继续生产。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_AcquireAudioBuffer()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_AcquireAudioBuffer(struct OH_AVScreenCapture *capture, OH_AudioBuffer **audiobuffer, OH_AudioCaptureSourceType type);
```
**描述:**
获取音频buffer,应用在调用时,需要对audiobuffer分配对应结构体大小的内存,否则会影响拿到音频buffer的获取。
buffer使用完成后,调用OH_AVScreenCapture_ReleaseAudioBuffer接口进行音频buffer的释放。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
| audiobuffer | 保存音频buffer的结构体,通过该结构体获取到音频buffer以及buffer的时间戳等信息。 |
| type | 音频buffer的类型,区分是麦克风录制的外部流还是系统内部播放音频的内录流,详情请参阅[OH_AudioCaptureSourceType](_a_v_screen_capture_base.md#oh_audiocapturesourcetype)。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_AcquireVideoBuffer()
```
OH_NativeBuffer* OH_AVScreenCapture_AcquireVideoBuffer(struct OH_AVScreenCapture *capture, int32_t *fence, int64_t *timestamp, struct OH_Rect *region);
```
**描述:**
获取视频buffer,应用在调用时,通过此接口来获取到视频的buffer以及时间戳等信息。
buffer使用完成后,调用OH_AVScreenCapture_ReleaseVideoBuffer接口进行视频buffer的释放。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
| fence | 用于同步的显示相关参数信息。|
| timestamp | 视频帧的时间戳。 |
| region | 视频显示相关的坐标信息。 |
**返回:**
执行成功返回OH_NativeBuffer对象, 通过OH_NativeBuffer对象相关接口可以获取到视频buffer和粉分辨率等信息参数。
**起始版本:**
10
### OH_AVScreenCapture_ReleaseAudioBuffer()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseAudioBuffer(struct OH_AVScreenCapture *capture, OH_AudioCaptureSourceType type);
```
**描述:**
释放音频buffer, 与OH_AVScreenCapture_AcquireAudioBuffer相对应,当某一帧音频buffer使用完成后,调用此接口进行释放对应的音频buffer
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
| type | 音频buffer的类型,区分mic流还是内录流。|
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_ReleaseVideoBuffer()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseVideoBuffer(struct OH_AVScreenCapture *capture);
```
**描述:**
释放视频buffer, 与OH_AVScreenCapture_AcquireVideoBuffer相对应,当某一帧视频buffer使用完成后,调用此接口进行释放对应的视频buffer。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_SetCallback()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCallback(struct OH_AVScreenCapture *capture, struct OH_AVScreenCaptureCallback callback);
```
**描述:**
设置监听接口,通过设置监听,可以监听到调用过程中的错误信息,以及是否有可用的视频buffer和音频buffer。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
| callback | OH_AVScreenCaptureCallback的结构体,保存相关回调函数指针。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_SetMicrophoneEnabled()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetMicrophoneEnabled(struct OH_AVScreenCapture *capture, bool isMicrophone);
```
**描述:**
设置mic开关,isMicrophone为true时,则打开麦克风,通过调用OH_AVScreenCapture_StartScreenRecording和OH_AVScreenCapture_AcquireAudioBuffer可以正常获取到音频的麦克风原始pcm数据,为false时,获取到的音频数据为无声数据。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
| isMicrophone | 麦克风开关参数。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
### OH_AVScreenCapture_Release()
```
OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_Release(struct OH_AVScreenCapture *capture);
```
**描述:**
将创建的OH_AVScreenCapture实例进行释放,对应OH_AVScreenCapture_Create。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| capture | 指向OH_AVScreenCapture实例的指针。 |
**返回:**
执行成功返回AV_SCREEN_CAPTURE_ERR_OK, 否则返回具体错误码,请参阅[OH_AVSCREEN_CAPTURE_ErrCode](native__avscreen_capture_errors_8h.md#oh_avscreen_capture_errcode)
**起始版本:**
10
# OH_AVScreenCaptureCallback
## 概述
OH_AVScreenCapture中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVScreenCapture实例中, 并处理回调上报的信息,以保证OH_AVScreenCapture的正常运行。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**起始版本:**
9
**相关模块:**
[AVSCreenCaptureBase](_a_v_screen_capture_base.md)
## 汇总
### 成员变量
| 名称 | 描述 |
| -------- | -------- |
| [onError](#onerror) | 监控录屏调用操作错误,请参见[OH_AVScreenCaptureOnError](_a_v_screen_capture_base.md#oh_avscreencaptureonerror)。 |
| [onAudioBufferAvailable](#onaudiobufferavailable) | 监控音频码流是否有数据产生[OH_AVScreenCaptureOnAudioBufferAvailable](_a_v_screen_capture_base.md#oh_avscreencaptureonaudiobufferavailable)。 |
| [onVideoBufferAvailable](#onvideobufferavailable) | 监控视频码流是否有数据产生[OH_AVScreenCaptureOnVideoBufferAvailable](_a_v_screen_capture_base.md#oh_avscreencaptureonvideobufferavailable)。 |
## 结构体成员变量说明
### onError
```
OH_AVScreenCaptureOnError onError
```
**描述:**
监控录屏调用操作错误,请参见[OH_AVScreenCaptureOnError](_a_v_screen_capture_base.md#oh_avscreencaptureonerror)
**起始版本:**
10
### onAudioBufferAvailable
```
OH_AVScreenCaptureOnAudioBufferAvailable onAudioBufferAvailable
```
**描述:**
监控音频码流是否有数据产生[OH_AVScreenCaptureOnAudioBufferAvailable](_a_v_screen_capture_base.md#oh_avscreencaptureonaudiobufferavailable)
**起始版本:**
10
### onVideoBufferAvailable
```
OH_AVScreenCaptureOnVideoBufferAvailable onVideoBufferAvailable
```
**描述:**
监控视频码流是否有数据产生[OH_AVScreenCaptureOnVideoBufferAvailable](_a_v_screen_capture_base.md#oh_avscreencaptureonvideobufferavailable)
**起始版本:**
10
\ No newline at end of file
# native_avscreen_capture.h
## 概述
声明屏幕录制相关接口,
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**起始版本:**
10
**相关模块:**
[AVScreenCapture](_a_v_screen_capture.md)
## 汇总
### 函数
| 名称 | 描述 |
| -------- | -------- |
| \*[OH_AVScreenCapture_Create](_a_v_screen_capture.md#oh_avscreencapture_create) (void) | 创建一个AVScreenCapture实例。 |
| [OH_AVScreenCapture_Init](_a_v_screen_capture.md#oh_avscreencapture_init) (struct OH_AVScreenCapture \*capture, OH_AVScreenCaptureConfig config) | 根据config配置初始化一个capture对象。 |
| [OH_AVScreenCapture_StartScreenCapture](_a_v_screen_capture.md#oh_avscreencapture_startscreencapture) (struct OH_AVScreenCapture \*capture) | 启动屏幕录制。 |
| [OH_AVScreenCapture_StopScreenCapture](_a_v_screen_capture.md#oh_avscreencapture_stopscreencapture) (struct OH_AVScreenCapture \*capture) | 停止屏幕录制。 |
| [OH_AVScreenCapture_AcquireAudioBuffer](_a_v_screen_capture.md#oh_avscreencapture_acquireaudiobuffer) (struct OH_AVScreenCapture \*capture, OH_AudioBuffer \*\*audiobuffer, OH_AudioCaptureSourceType type) | 调用开始录制接口后,调用该接口进行音频buffer的申请,获取音频buffer信息。 |
| [OH_AVScreenCapture_AcquireVideoBuffer](_a_v_screen_capture.md#oh_avscreencapture_acquirevideobuffer) (struct OH_AVScreenCapture \*capture, int32_t \*fence, int64_t \*timestamp, OH_Rect \*region) | 调用开始录制接口后,调用该接口进行视频buffer的申请,获取视频buffer信息。 |
| [OH_AVScreenCapture_ReleaseAudioBuffer](_a_v_screen_capture.md#oh_avscreencapture_releaseaudiobuffer) (struct OH_AVScreenCapture \*capture, OH_AudioCaptureSourceType type) | 调用接口释放指定screencapture实例中的音频数据。 |
| [OH_AVScreenCapture_ReleaseVideoBuffer](_a_v_screen_capture.md#oh_avscreencapture_releasevideobuffer) (struct OH_AVScreenCapture \*capture) |调用接口释放指定screencapture实例中的视频数据。|
| [OH_AVScreenCapture_SetCallback](_a_v_screen_capture.md#oh_avscreencapture_setcallback) (struct OH_AVScreenCapture \*capture, struct OH_AVScreenCaptureCallback callback) | 设置回调接口通过设置监听,可以监听到调用过程中的错误信息,以及是否有可用的视频buffer和音频buffer |
| [OH_AVScreenCapture_Release](_a_v_screen_capture.md#oh_avscreencapture_release) (struct OH_AVScreenCapture \*capture) | 停止录制流程结束后,调用接口进行指定avscreencapture实例的释放。 |
| [OH_AVScreenCapture_SetMicrophoneEnabled](_a_v_screen_capture.md#oh_avscreencapture_setmicrophoneenabled) (struct OH_AVScreenCapture \*capture, bool isMicrophone) | 设置麦克风在屏幕录制期间是否启用。 |
\ No newline at end of file
# native_avscreen_capture_base.h
## 概述
声明运行屏幕录制通用的结构体、字符常量、枚举
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**起始版本:**
10
**相关模块:**
[AVScreenCapture](_a_v_screen_capture.md)
## 汇总
### 结构体
| 名称 | 描述 |
| -------- | -------- |
| [OH_AudioCaptureInfo](_a_v_screen_capture_base.md#oh_audiocaptureinfo) | 定义音频录制audiocapture实例的描述信息。 |
| [OH_AudioEncInfo](_a_v_screen_capture_base.md#oh_audioencinfo) | 定义音频的编码数据的描述信息。 |
| [OH_AudioInfo](_a_v_screen_capture_base.md#oh_audioinfo) | 定义屏幕录制时音频的描述信息。 |
| [OH_VideoCaptureInfo](_a_v_screen_capture_base.md#oh_videocaptureinfo) | 定义屏幕录制中视频录制capture的描述信息。 |
| [OH_VideoEncInfo](_a_v_screen_capture_base.md#oh_videoencinfo) | 定义屏幕录制中视频的编码数据描述信息。 |
| [OH_VideoInfo](_a_v_screen_capture_base.md#oh_videoinfo) | 定义屏幕录制时视频的描述信息。 |
| [OH_AVScreenCaptureConfig](_a_v_screen_capture_base.md#oh_avscreencaptureconfig) | 定义整体avscreencapture的配置信息。 |
| [OH_AVScreenCaptureCallback](_a_v_screen_capture_callback.md) | 定义avscreencapture的回调信息,包含不同的回调函数类型。 |
| [OH_Rect](_a_v_screen_capture_base.md#oh_rect) | 定义录屏的宽高以及画面信息。 |
| [OH_AudioBuffer](_a_v_screen_capture_base.md#oh_audiobuffer) | 定义了音频数据的大小,类型,时间戳等配置信息。 |
### 类型定义
| 名称 | 描述 |
| -------- | -------- |
| (\*[OH_AVScreenCaptureOnError](_a_v_screen_capture_base.md#oh_avscreencaptureonerror)) (OH_AVScreenCapture \*capture, int32_t errorCode)| 当screencapture在运行过程中执行某一流程出现错误,则调用该函数指针并上报错误码。 |
| (\*[OH_AVScreenCaptureOnAudioBufferAvailable](_a_v_screen_capture_base.md#avscreencaptureonaudiobufferavailable)) (OH_AVScreenCapture \*capture, bool isReady, OH_AudioCaptureSourceType type)| 当screencapture在运行,音频缓冲可用时,调用该函数指针并更新状态信息。 |
| (\*[OH_AVScreenCaptureOnVideoBufferAvailable](_a_v_screen_capture_base.md#avscreencaptureonvideobufferavailable)) (OH_AVScreenCapture \*capture, bool isReady)| 当screencapture在运行,视频缓冲可用时,调用该函数指针并更新状态信息。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [OH_CaptureMode](_a_v_screen_capture_base.md#oh_capturemode) {<br/>**OH_CAPTURE_HOME_SCREEN** = 0,**OH_CAPTURE_SPECIFIED_SCREEN** = 1, **OH_CAPTURE_SPECIFIED_WINDOW** = 2, **OH_CAPTURE_INVAILD** = -1<br/>} | 屏幕录制的不同模式。 |
| [OH_AudioCaptureSourceType](_a_v_screen_capture_base.md#oh_audiocapturesourcetype) {<br/>**OH_SOURCE_INVALID** = -1, **OH_SOURCE_DEFAULT** = 0, **OH_MIC** = 1, **OH_ALL_PLAYBACK** = 2, **OH_APP_PLAYBACK** = 3<br/>} | 屏幕录制音频的不同source类型。 |
| [OH_AudioCodecFormat](_a_v_screen_capture_base.md#oh_audiocodecformat) {<br/>**OH_AUDIO_DEFAULT** = 0, **OH_AAC_LC** = 3, **OH_AUDIO_CODEC_FORMAT_BUTT**,<br/>} | 屏幕录制音频的不同的编码格式。 |
| [OH_VideoCodecFormat](_a_v_screen_capture_base.md#oh_videocodecformat) {<br/>**OH_VIDEO_DEFAULT** = 0, **OH_H264** = 2, **OH_H265** = 4, **OH_MPEG4** = 6, **OH_VP8** = 8, **OH_VP9** = 10, **OH_VIDEO_CODEC_FORMAT_BUTT**<br/>} | 屏幕录制视频的不同编码格式。 |
| [OH_DataType](_a_v_screen_capture_base.md#oh_datatype) {<br/>**OH_ORIGINAL_STREAM** = 0, **OH_ENCODED_STREAM** = 1, **OH_CAPTURE_FILE** = 2, **OH_INVAILD** = -1<br/>} | 屏幕录制流的数据格式,编码格式,以及保存文件格式等参数。 |
| [OH_VideoSourceType](_a_v_screen_capture_base.md#oh_videosourcetype) {<br/>**OH_VIDEO_SOURCE_SURFACE_YUV** = 0, **OH_VIDEO_SOURCE_SURFACE_ES**, **OH_VIDEO_SOURCE_SURFACE_RGBA**, **OH_VIDEO_SOURCE_BUTT**<br/>} | 屏幕录制视频的不同source类型。 |
| [OH_ContainerFormatType](_a_v_screen_capture_base.md#oh_containerformattype) {<br/>**CFT_MPEG_4A** = 0, **CFT_MPEG_4** = 1<br/>} | 屏幕录制生成物的不同音视频格式类型。 |
# native_avscreen_capture_errors.h
## 概述
声明运行屏幕录制过程中调用接口发生的错误码。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**起始版本:**
10
**相关模块:**
[AVScreenCapture](_a_v_screen_capture.md)
## 汇总
### 类型定义
| 名称 | 描述 |
| -------- | -------- |
| [OH_AVSCREEN_CAPTURE_ErrCode](#oh_avscreen_capture_errcode) | 屏幕录制错误码。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [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, **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, **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/>} | 屏幕录制进行过程中产生的不同错误码类型。 |
## 类型定义说明
### OH_AVSCREEN_CAPTURE_ErrCode
```
typedef enum OH_AVSCREEN_CAPTURE_ErrCode OH_AVSCREEN_CAPTURE_ErrCode
```
**描述:**
屏幕录制错误码。
\@syscap SystemCapability.Multimedia.Media.AVScreenCapture
**起始版本:**
10
## 枚举类型说明
### OH_AVSCREEN_CAPTURE_ErrCode
```
enum OH_AVSCREEN_CAPTURE_ErrCode
```
**描述:**
屏幕录制操作错误码
\@syscap SystemCapability.Multimedia.Media.Core
**起始版本:**
10
| 枚举值 | 描述 |
| -------- | -------- |
| AV_SCREEN_CAPTURE_ERR_BASE | basic error mask for screen recording. |
| AV_SCREEN_CAPTURE_ERR_OK | the operation completed successfully. |
| AV_SCREEN_CAPTURE_ERR_NO_MEMORY | no memory. |
| AV_SCREEN_CAPTURE_ERR_OPERATE_NOT_PERMIT | opertation not be permitted. |
| AV_SCREEN_CAPTURE_ERR_INVALID_VAL | invalid argument. |
| AV_SCREEN_CAPTURE_ERR_IO | IO error. |
| AV_SCREEN_CAPTURE_ERR_TIMEOUT | network timeout. |
| AV_SCREEN_CAPTURE_ERR_UNKNOWN | unknown error. |
| AV_SCREEN_CAPTURE_ERR_SERVICE_DIED | media service died. |
| AV_SCREEN_CAPTURE_ERR_INVALID_STATE | the state is not support this operation. |
| AV_SCREEN_CAPTURE_ERR_UNSUPPORT | unsupport interface. |
| AV_SCREEN_CAPTURE_ERR_EXTEND_START | extend err start. |
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册