现如今,手机录屏是必不可少的能力之一。对于游戏领域作者来说,在平时直播玩游戏、制作攻略、操作集锦时,不方便切屏,这时在游戏内如果有一个录制按钮就可以随时开启,记录下每个精彩瞬间,减少后期剪辑工作量;在直播App中开启一键录屏,不光方便主播后续的账号运营与复盘,用户也能随时截取有意思的片段传播在社交媒体上;在会议App里,通常因为要点太多而来不及记录,此时点击录屏按钮,后续再进行会议的回顾、总结与摘要就十分便利;在上网课时,用户可以直接在课程页面点击录屏,方便及时学习和批注;和亲朋好友视频聊天,也可在社交App里直接点击录制,记录下每个相见的时光。

那么,如何在App里集成录屏能力呢?HMS Core视频编辑服务屏幕录制SDK提供全屏录制手机桌面、实时录音、后台录制等能力,集成简单,支持自定义录屏通知、多分辨率选择、多存储路径选择等,无需切屏,助力游戏、直播等App快速、轻松实现录屏功能。

功能特点

30行代码就可以简单集成;

支持自定义通知栏样式;

支持横竖屏切换;

支持多分辨率选择;

录屏结束后,支持自定义存储位置。

Demo

开发步骤

1.开发准备

详细准备步骤可参考华为开发者联盟官网

2. 集成屏幕录制

  1. 创建屏幕录制事件监听器HVERecordListener实例,重写监听器的方法。
HVERecordListener mHVERecordListener = new HVERecordListener(){
@Override
public void onRecordStateChange(HVERecordState recordingStateHve) {
// 录屏状态变化
} @Override
public void onRecordProgress(int duration) {
// 录屏进度
} @Override
public void onRecordError(HVEErrorCode err, String msg) {
// 录屏错误
} @Override
public void onRecordComplete(HVERecordFile fileHve) {
// 录屏完成
}
};
  1. 使用应用上下文和HVERecordListener实例,初始化HVERecord
HVERecord.init(this, mHVERecordListener);

3.(可选)创建HVERecordConfiguration.Builder实例,设置录屏配置。

HVERecordConfiguration hveRecordConfiguration = new HVERecordConfiguration.Builder()
.setMicStatus(true)
.setOrientationMode(HVEOrientationMode.LANDSCAPE)
.setResolutionMode(HVEResolutionMode.RES_480P)
.setStorageFile(new File("/sdcard/DCIM/Camera"))
.build();
HVERecord.setConfigurations(hveRecordConfiguration);
  1. 自定义录屏通知。在自定义录屏通知前,先创建用来指定通知布局的XML文件。XML文件需包含按钮等通知组件的ID。以下为指定录屏通知布局的XML文件使用示例。将自定义录屏通知的按钮对应ID命名为“btn_1”。可根据实际需要决定通知中的按钮数量。

a. 将自定义通知布局传入HVENotificationConfig的初始化方法。

b. 使用XML文件中定义的按钮、textView等组件的ID及点击事件。调用addClickEvent可新建点击事件。

c. 调用setDurationViewId设置textView ID,用来指定录屏时长显示位置。

d. 调用setCallingIntent设置录屏通知点击时返回的intent。在示例中,intent用来打开一个Activity,这是intent的常见用法。

e. 在HVERecord中设置通知配置。

HVENotificationConfig notificationData = new HVENotificationConfig(R.layout.hms_scr_layout_custom_notification);
notificationData.addClickEvent(R.id.btn_1, () -> { HVERecord.stopRecord(); });
notificationData.setDurationViewId(R.id.duration);
notificationData.setCallingIntent(new Intent(this, SettingsActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK));
HVERecord.setNotificationConfig(notificationData);
  1. 开始录屏。
HVERecord.startRecord();
  1. 停止录屏。
HVERecord.stopRecord();

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

仅需30行代码,轻松集成HMS Core视频编辑服务屏幕录制能力的更多相关文章

  1. HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频

    前言 短视频模板,是快捷创作短视频的一种方式,一般由专业设计师或模板创作人制作,用户只需替换视频模板中的部分素材,便可生成一支与模板一样的创意视频.这种省时省力.无需"烧脑"构思创 ...

  2. 仅需几行代码 轻松实现ETH代币空投

    仅需几行代码 轻松实现ETH代币空投 批量发送以太坊,部署下面的合约,然后往下面的合约打币,就可以分发 ragma solidity ^0.4.21; contract batchTransfer { ...

  3. 如何让照片中的人物笑起来?HMS Core视频编辑服务一键微笑功能,让人物笑容更自然

    最近一键"露齿笑"席卷全网,无论是短视频用户还是社交App用户都在使用这项黑科技.当三两好友聚会拍集体照留念时,为了处理个别人的表情"瑕疵",让大家都尽量保持微 ...

  4. 全场景AI推理引擎MindSpore Lite, 助力HMS Core视频编辑服务打造更智能的剪辑体验

    移动互联网的发展给人们的社交和娱乐方式带来了很大的改变,以vlog.短视频等为代表的新兴文化样态正受到越来越多人的青睐.同时,随着AI智能.美颜修图等功能在图像视频编辑App中的应用,促使视频编辑效率 ...

  5. HMS Core音频编辑服务支持7种音频特效,助力一站式音频处理

    多媒体时代,音频作为内容传播中的重要形式,因其不受空间限制.认知负担小.声音元素多样化等特点,广泛应用于短视频制作.儿童在线教育.有声阅读.游戏等领域产品,在各种形式的音频呈现过程中,合理添加音效能够 ...

  6. 程序员必备的编程助手!SmartCoder助你轻松集成HMS Core

    当开发者在集成HMS Core遇到一些疑问时,需要翻阅官网文档,反复查看集成说明或者API调用说明,或者研究GitHub上的开源示例代码,花费较多的时间,在IDE环境和网页浏览器之间反复切换也会耗费很 ...

  7. 对抗噪音,一键清晰,HMS Core音频编辑服务给你“录音棚”般的体验

    短视频时代来临,一部手机就可以玩转多种花样,所以越来越多的自由创作者加入这个行业,平时生活中用手机拍短视频.街头唱歌的非专业从业者随处可见.离开了录音棚,没有专业.统一的录音设备,无论在家里还是在路边 ...

  8. HMS Core音频编辑服务3D音频技术,助力打造沉浸式听觉盛宴

    2022年6月28日,HDD·HMS Core.Sparkle影音娱乐沙龙在线上与开发者们见面.HMS Core音频编辑服务(Audio Editor Kit)专家为大家详细分享了基于分离的3D音乐创 ...

  9. HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界

    从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...

  10. 黑科技!仅需 3 行代码,就能将 Gitter 集成到个人网站中,实现一个 IM 即时通讯聊天室功能?

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

随机推荐

  1. 新来个架构师,用48张图把OpenFeign原理讲的炉火纯青~~

    大家好,我是三友~~ 在很久之前,我写过两篇关于OpenFeign和Ribbon这两个SpringCloud核心组件架构原理的文章 但是说实话,从我现在的角度来看,这两篇文章的结构和内容其实还可以更加 ...

  2. 2024-02-28:用go语言,有一个由x轴和y轴组成的坐标系, “y下“和“y上“表示一条无限延伸的道路,“y下“表示这个道路的下限,“y上“表示这个道路的上限, 给定一批长方形,每一个长方形有(

    2024-02-28:用go语言,有一个由x轴和y轴组成的坐标系, "y下"和"y上"表示一条无限延伸的道路,"y下"表示这个道路的下限,& ...

  3. js之以面向对象的形式书写贪吃蛇

    此代码存在一定的小bug,当蛇出边界之后存在一定的小问题 分析贪吃蛇功能需求: 1.食物 (1)每次生成一个,位置随意但不可超出规定范围 (2)每次蛇吃到食物之后,前一个食物消失同时新的食物又生成 ( ...

  4. Cocos Creator 2.x升级至Cocos Creator 3.x

    1.导入类时,批量导入 2.导入 override...关键字时,批量导入 3.this.node.scale = 0.6-->this.node.setScale(0.6, 0.6); 4.n ...

  5. 【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known

    问题描述 使用 azure-spring-boot-starter-storage 来上传文件到 Storage Blob中,并把应用部署到Azure 中国区的Spring Cloud服务后,调用上传 ...

  6. ui转py文件

    ui文件转py文件并且使用 简单做一个笔记,以后忘了回来看看 转换 在QT Designer中创建完ui文件后,回到pycharm中,右键点击ui文件,选择pyuic 完成后获得了和ui文件同名的py ...

  7. 你想要一个简单的 MQ 吗?(最简单的那种)

    FolkMQ 一个简单的消息中间件(全球最简单的那种,要比谁都简单!).追世间简单为何物,可叫我生死相许! 面向简单编程 1) 启动服务 docker run -p 18602:18602 -p 86 ...

  8. python Ai 应用开发基础训练,字符串,字典,文件

    --------------------------------------    编程能是大模型应用的天花板............................................. ...

  9. SHA算法:数据完整性的守护者

    一.SHA算法的起源与演进 SHA(Secure Hash Algorithm)算法是一种哈希算法,最初由美国国家安全局(NSA)设计并由国家标准技术研究所(NIST)发布.SHA算法的目的是生成数据 ...

  10. JS3-高级事件

    获取事件和处理事件的第二种方式:事件监听 如何获取和处理鼠标与键盘的基本事件? 事件监听方式 eventTarget.addEventListener(type,listener[,useCaptur ...