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 及更高版本