仅需30行代码,轻松集成HMS Core视频编辑服务屏幕录制能力
现如今,手机录屏是必不可少的能力之一。对于游戏领域作者来说,在平时直播玩游戏、制作攻略、操作集锦时,不方便切屏,这时在游戏内如果有一个录制按钮就可以随时开启,记录下每个精彩瞬间,减少后期剪辑工作量;在直播App中开启一键录屏,不光方便主播后续的账号运营与复盘,用户也能随时截取有意思的片段传播在社交媒体上;在会议App里,通常因为要点太多而来不及记录,此时点击录屏按钮,后续再进行会议的回顾、总结与摘要就十分便利;在上网课时,用户可以直接在课程页面点击录屏,方便及时学习和批注;和亲朋好友视频聊天,也可在社交App里直接点击录制,记录下每个相见的时光。
那么,如何在App里集成录屏能力呢?HMS Core视频编辑服务屏幕录制SDK提供全屏录制手机桌面、实时录音、后台录制等能力,集成简单,支持自定义录屏通知、多分辨率选择、多存储路径选择等,无需切屏,助力游戏、直播等App快速、轻松实现录屏功能。
功能特点
30行代码就可以简单集成;
支持自定义通知栏样式;
支持横竖屏切换;
支持多分辨率选择;
录屏结束后,支持自定义存储位置。
Demo
开发步骤
1.开发准备
详细准备步骤可参考华为开发者联盟官网。
2. 集成屏幕录制
- 创建屏幕录制事件监听器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) {
// 录屏完成
}
};
- 使用应用上下文和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);
- 自定义录屏通知。在自定义录屏通知前,先创建用来指定通知布局的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);
- 开始录屏。
HVERecord.startRecord();
- 停止录屏。
HVERecord.stopRecord();
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
仅需30行代码,轻松集成HMS Core视频编辑服务屏幕录制能力的更多相关文章
- HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频
前言 短视频模板,是快捷创作短视频的一种方式,一般由专业设计师或模板创作人制作,用户只需替换视频模板中的部分素材,便可生成一支与模板一样的创意视频.这种省时省力.无需"烧脑"构思创 ...
- 仅需几行代码 轻松实现ETH代币空投
仅需几行代码 轻松实现ETH代币空投 批量发送以太坊,部署下面的合约,然后往下面的合约打币,就可以分发 ragma solidity ^0.4.21; contract batchTransfer { ...
- 如何让照片中的人物笑起来?HMS Core视频编辑服务一键微笑功能,让人物笑容更自然
最近一键"露齿笑"席卷全网,无论是短视频用户还是社交App用户都在使用这项黑科技.当三两好友聚会拍集体照留念时,为了处理个别人的表情"瑕疵",让大家都尽量保持微 ...
- 全场景AI推理引擎MindSpore Lite, 助力HMS Core视频编辑服务打造更智能的剪辑体验
移动互联网的发展给人们的社交和娱乐方式带来了很大的改变,以vlog.短视频等为代表的新兴文化样态正受到越来越多人的青睐.同时,随着AI智能.美颜修图等功能在图像视频编辑App中的应用,促使视频编辑效率 ...
- HMS Core音频编辑服务支持7种音频特效,助力一站式音频处理
多媒体时代,音频作为内容传播中的重要形式,因其不受空间限制.认知负担小.声音元素多样化等特点,广泛应用于短视频制作.儿童在线教育.有声阅读.游戏等领域产品,在各种形式的音频呈现过程中,合理添加音效能够 ...
- 程序员必备的编程助手!SmartCoder助你轻松集成HMS Core
当开发者在集成HMS Core遇到一些疑问时,需要翻阅官网文档,反复查看集成说明或者API调用说明,或者研究GitHub上的开源示例代码,花费较多的时间,在IDE环境和网页浏览器之间反复切换也会耗费很 ...
- 对抗噪音,一键清晰,HMS Core音频编辑服务给你“录音棚”般的体验
短视频时代来临,一部手机就可以玩转多种花样,所以越来越多的自由创作者加入这个行业,平时生活中用手机拍短视频.街头唱歌的非专业从业者随处可见.离开了录音棚,没有专业.统一的录音设备,无论在家里还是在路边 ...
- HMS Core音频编辑服务3D音频技术,助力打造沉浸式听觉盛宴
2022年6月28日,HDD·HMS Core.Sparkle影音娱乐沙龙在线上与开发者们见面.HMS Core音频编辑服务(Audio Editor Kit)专家为大家详细分享了基于分离的3D音乐创 ...
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...
- 黑科技!仅需 3 行代码,就能将 Gitter 集成到个人网站中,实现一个 IM 即时通讯聊天室功能?
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
随机推荐
- 【生成对抗网络学习 其二】GAN(keras实现)代码阅读笔记
想来想去还是记录一下吧,主要是怕以后时间长忘了 好记性不如烂笔头 代码来自eriklindernoren的开源GAN实现:https://github.com/eriklindernoren/Kera ...
- 《HelloGitHub》第 95 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- 基于 Nebula Graph 构建百亿关系知识图谱实践
本文首发于 Nebula Graph Community 公众号 一.项目背景 微澜是一款用于查询技术.行业.企业.科研机构.学科及其关系的知识图谱应用,其中包含着百亿级的关系和数十亿级的实体,为了使 ...
- WAF和IPS的区别
简介 Web应用防火墙WAF(Web Application Firewall)和入侵防御系统IPS(Intrusion Prevention System)是网络安全领域中常见的两种安全解决方案,它 ...
- Zabbix“专家坐诊”第185期问答汇总
问题一 Q:Zabbix5.0版本,如图,请问这里怎么修改回localhost? A:找到文件conf/zabbix.conf.php,改下图这个位置 问题二 Q:大家好,我有个疑问请教下,zabbi ...
- vscode 文件上传快捷键 shift+alt+s (ftp专用)插件用的 ftp-sync
vscode 文件上传快捷键 shift+alt+s (ftp专用)插件用的 ftp-sync { "key": "shift+alt+s", "co ...
- HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(1) --- 环境搭建
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- django(ORM)
一 单表(增.删.改.查) 1 测试脚本 ''' 只想测试django中的某一个py文件内容,那么可以不用书写前后端交互的形式 而是直接写一个测试脚本即可 ''' # 脚本代码无论是写在应用下的tes ...
- ViewStub你真的了解吗
目录介绍 01.什么是ViewStub 02.ViewStub构造方法 03.inflate()方法解析 04.WeakReference使用 05.ViewStub为何无大小 06.ViewStub ...
- window-命令行操作
window命令行操作 调起命令行-win+r输入cmd 网络探活 ping www.baidu.com 快捷启动应用 打开记事本 notepad 打开画图 mspaint 打开计算器 calc 命令 ...