Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
0b187d69
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0b187d69
编写于
8月 02, 2023
作者:
W
wangzx0705
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the docs format
Signed-off-by:
N
wangzx0705
<
wangzx0705@thundersoft.com
>
上级
3c1cde0e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
18 addition
and
14 deletion
+18
-14
zh-cn/application-dev/media/Readme-CN.md
zh-cn/application-dev/media/Readme-CN.md
+1
-2
zh-cn/application-dev/media/avscreen-capture.md
zh-cn/application-dev/media/avscreen-capture.md
+17
-12
未找到文件。
zh-cn/application-dev/media/Readme-CN.md
浏览文件 @
0b187d69
...
...
@@ -31,8 +31,7 @@
-
[
开发音频通话功能
](
audio-call-development.md
)
-
[
视频播放
](
video-playback.md
)
-
[
视频录制
](
video-recording.md
)
-
屏幕录制
-
[
屏幕录制
](
avscreen-capture.md
)
-
[
屏幕录制
](
avscreen-capture.md
)
-
音视频编解码
-
[
获取支持的编解码能力
](
obtain-supported-codecs.md
)
-
[
音频编码
](
audio-encoding.md
)
...
...
zh-cn/application-dev/media/avscreen-capture.md
浏览文件 @
0b187d69
# 屏幕录制
屏幕录制
功能主要有主屏幕录屏、指定物理屏录屏和应用内录屏
。
屏幕录制
主要为主屏幕录屏功能
。
录屏(AVScreenCapture)以单独的原子能力构建,给开发者提供能力接口,视频采集功能对接窗口和图形模块,语音采集和编码后码流对接AudioService和AVCodecService。AVScreenCapture采用client-server设计结构,用openharmony IPC进行通信。proxy和stub,负责IPC接口通信,npi提供kit层级的接口,client负责权限校验以及接口能力。server负责音视频的采集,以及buffer管理等
。
开发者可以调用录屏(AVScreenCapture)模块的Native API接口,完成屏幕录制,采集设备内、麦克风等的音视频源数据。当开发直播、办公等应用时,可以调用录屏模块获取音视频码流,然后通过流的方式流转到其他模块处理或直接对接CDN服务器,达成直播时共享桌面的场景
。
主屏幕录屏:录屏框架在制作录屏镜像时默认使用主屏;图形默认根据主屏生产录屏帧数据到显示数据缓冲队列;录屏框架从显示数据缓冲队列获取数据进行相应消费处理
。
录屏模块和窗口(Window)、图形(Graphic)等模块完成整个视频采集的流程
。
## 如何选择屏幕录制开发方式
当前在进行屏幕录制时默认使用主屏,图形默认根据主屏生产录屏帧数据到显示数据缓冲队列,录屏框架从显示数据缓冲队列获取数据进行相应消费处理。
录屏取码流场景,主要用于直播类应用,应用需要获取录屏相关的音视频码流,然后通过流的流转方式或者对接CDN服务器方式,达到直播时桌面共享的场景。应用配置完音视频相关参数后 ,可启动录制,在录制过程中可以控制麦克风的开关,达到mic音频是否在直播时播放,结束直播时刻停止录制。
另外某些应用有自己的编码器,因此需要获取的是原始码流,用于对接它内部自己的编码器(比如:welink,内部采用webRTC,有自己的编码器)。有些应用需要把流发布到CDN服务 器,那么他就需要编码后的码流。
## 选择屏幕录制开发方式
## 开发录制应用须知
应用可以调用麦克风录制音频,但该行为属于隐私敏感行为,在调用麦克风前,需要先向用户申请权限“ohos.permission.MICROPHONE”。
应用可以调用屏幕录制视频,但该行为属于隐私敏感行为,在调用屏幕录制前,需要先向用户申请权限“ohos.permission.CAPTURE_SCREEN”。
权限申请的流程请参考
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md
)
。
有自己编码器的应用,需要获取原始码流,用于对接自己的内部编码器。
需要把流发布到CDN服务器的应用,需要获取编码后的码流。
## 开发指导
...
...
@@ -25,6 +20,16 @@
使用AVScreenCapture时要明确其状态的变化,在创建实例后,调用对应的方法可以进入指定的状态实现对应的行为。
在确定的状态下执行不合适的方法会导致AVScreenCapture发生错误,开发者需要在调用状态转换的方法前进行状态检查,避免程序运行异常。
### 权限说明
在开发前,请根据应用实际需求,参考
[
访问控制授权申请指导
](
../security/accesstoken-guidelines.md
)
申请以下权限:
| 权限名 | 说明 | 授权方式 | 权限级别 |
| ------ | ----- | --------| ------- |
| ohos.permission.CAPTURE_SCREEN | 允许应用截取屏幕图像。| system_grant | system_core |
| ohos.permission.MICROPHONE | 允许应用使用麦克风(可选)。
如需录制麦克风源的音频,需要申请该权限。| user_grant | normal |
### 开发步骤及注意事项
开发者可以通过以下几个步骤来实现一个简单的屏幕录制功能。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录