screenRecording

立即使用

概述

iOS 10 系统的 ReplayKit 保存录屏视频的基础上,增加了视频流实时直播功能(streaming live),第三方广播服务可以将广播出来的直播流进行分发和直播。第三方广播服务需要实现对应用程序扩展。广播UI扩展提供了一个用户界面,允许用户登录到服务。登录成功后可以使用第三方的服务实现直播流的分发和直播。broadcastList模块封装了打开当前设备支持屏幕直播的 App 列表。

iOS 12 系统支持 App 内打开系统自带录屏功能,录制的视频可保存到系统相册,也可以指定支持录屏的直播的 App(通过preferredExtension参数实现)。本模块即封装了打开录屏功能的按钮,可指定按钮的位置大小和图片。

注意:本功能只支持在 iOS 12.0 及以上版本的设备

关于AVM方式

本模块支持 AVM 方式打开。通过 AVM 标签方式打开的模块,打开后会显示一个默认的按钮图标。

示例:

<mo-screenRecording id="startScreenRecording"></mo-screenRecording>

该模块同时也支持 api.require 方式调用,通过 open 接口相当于 AVM 的标签打开了一个按钮模块。通过 open 接口打开的按钮模块,可自定义一张按钮图片,可覆盖系统自带的默认按钮图片。

Android使用说明

android平台调用open后会弹出一个红色按钮,点击按钮即可开始录屏,再次点击即可停止录屏,调用close会从屏幕移除该按钮,注意:该录屏模块只能在android 5.0及以上平台上使用(注意:该模块需要悬浮窗权限)

模块接口

open

显示一个打开录屏功能的按钮

open({params})

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)按钮的位置及大小
  • 内部字段:
{
    x: 0,        //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,        //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w:30,       //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认:100%;默认:30
    h:30        //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认:100%;默认:30
}

fixedOn:

  • 类型:字符串类型 (仅支持ios)
  • 描述:(可选项)按钮添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:按钮依附于当前 window

fixed:

  • 类型:布尔 (仅支持ios)
  • 描述:(可选项)按钮是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

buttonImg:

  • 类型:字符串类型 (仅支持ios)
  • 描述:(可选项)按钮的图片路径,要求本地路径(widget://、fs://)
  • 默认:默认图片

showsMicrophoneButton:

  • 类型:布尔 (仅支持ios)
  • 描述:(可选项)开始录屏页面是否显示打开/关闭麦克风按钮
  • 默认值:true

preferredExtension:

  • 类型:字符串类型(仅支持ios)
  • 描述:(可选项)支持录屏直播的 App 的 bundle ID。broadcastList 模块开的 App 列表,联系 App 的发布方获取其 bundle ID。

示例代码

var screenRecording = api.require('screenRecording');
screenRecording.open({
    rect:{
        x:100,
        y:150,
        w:200,
        h:200
    },
    fixedOn:api.frameName,
    fixed:false,
    //buttonImg:'widget://res/c.png',
    showsMicrophoneButton:true,
    //preferredExtension:'com.apicloud.saoifa'
});

可用性

iOS & Android系统

可提供的 1.0.0 及更高版本

close

从屏幕中移除录屏按钮

close()

示例代码

var screenRecording = api.require('screenRecording');
screenRecording.close();

可用性

Android 系统

可提供的 1.0.0 及更高版本