乐趣区

关于android:仅需30行代码轻松集成HMS-Core视频编辑服务屏幕录制能力

现如今,手机录屏是必不可少的能力之一。对于游戏畛域作者来说,在平时直播玩游戏、制作攻略、操作集锦时,不不便切屏,这时在游戏内如果有一个录制按钮就能够随时开启,记录下每个精彩霎时,缩小前期剪辑工作量;在直播 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();

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

退出移动版