录屏

基础库 swan-game.js 1.4.1 版本开始支持。

swan.getVideoRecorderManager()

获取全局唯一的 videoRecorderManager。

1
swan.getVideoRecorderManager()

videoRecorderManager

全局唯一的录屏管理器,通过 swan.getVideoRecorderManager() 创建。

videoRecorderManager.start()

开始录屏。可以通过 onStart 接口监听录屏开始事件。

1
videoRecorderManager.start(opts)

参数值:

属性 类型 默认值 是否必填 描述
opts Object - 调用该方法时,要传入的对象参数
opts.duration number 10 录屏的时长,单位 s,最大值 120(2 分钟)

示例:

1
2
3
4
5
6
7
8
9
10
const recorder = swan.getVideoRecorderManager();

recorder.onStart(res => {
// 录屏开始
console.log(res);
})

recorder.start({
duration: 60,
})

videoRecorderManager.onStart()

监听录屏开始事件。

1
videoRecorderManager.onStart(callback)

参数值:

属性 类型 是否必填 描述
callback function 监听录屏开始事件的回调函数

示例:

1
2
3
4
5
6
7
8
9
10
const recorder = swan.getVideoRecorderManager();

recorder.onStart(res => {
// 录屏开始
console.log(res);
})

recorder.start({
duration: 60,
})

VideoRecorderManager.recordClip()

记录精彩的视频片段,调用时必须是正在录屏,可以多次调用,记录不同时刻。在结束录屏时,可以调用 clipVideo 接口剪辑并合成记录的片段。

1
VideoRecorderManager.recordClip(opts)

参数值

属性 类型 默认值 是否必填 描述
opts Object - 调用该方法时,要传入的对象参数
opts.timeRange Array [3,3] 表示记录数组两个值表示的时间范围内的视频,以秒为单位。

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const recorder = swan.getVideoRecorderManager();

recorder.start({
duration: 30,
})

// 记录当前时刻前三秒,后三秒,支持多次调用
recorder.recordClip({
timeRange: [3, 3]
})

recorder.onStop(({ videoPath })=>{
recorder.clipVideo({
path: videoPath,
success(res){
console.log(res.videoPath);
}
})
})

VideoRecorderManager.clipVideo()

剪辑视频片段。

1
VideoRecorderManager.clipVideo(opts)

参数

属性 类型 默认值 是否必填 描述
path string path的值为停止录屏拿到的视频地址
success function 剪辑成功的回调函数
fail function 剪辑失败的回调函数
complete function 接口调用完成的回调函数(接口成功、失败都会执行)

success回调函数参数值:

属性 类型 描述
res Object 回调函数的参数
res.videoPath string 剪辑成功的视频地址

fail、complete回调参数:

名称 数据类型 描述
res Object 回调函数的参数
res.errMsg string 错误信息

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const recorder = swan.getVideoRecorderManager();

recorder.start({
duration: 30,
})

// 记录当前时刻前三秒,后三秒
recorder.recordClip({
timeRange: [3, 3]
})

recorder.onStop(({ videoPath })=>{
recorder.clipVideo({
path: videoPath,
success(res){
console.log(res.videoPath);
}
})
})

videoRecorderManager.pause()

暂停录屏。在录屏开始后调用。

1
videoRecorderManager.pause()

代码示例

1
2
3
4
5
6
7
const recorder = swan.getVideoRecorderManager();

recorder.onPause(() => {
// 录屏已暂停;
})

recorder.pause()

videoRecorderManager.onPause()

监听录屏暂停事件。

1
videoRecorderManager.onPause(callback)

参数值:
监听事件的回调函数

属性 类型 是否必填 描述
callback function 监听暂停录屏事件的回调函数

代码示例

1
2
3
4
5
6
7
const recorder = swan.getVideoRecorderManager();

recorder.onPause(() => {
// 录屏已暂停;
})

recorder.pause()

videoRecorderManager.resume()

继续录屏,应在录屏被暂停后调用。

1
videoRecorderManager.resume()

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
const recorder = swan.getVideoRecorderManager();

recorder.onPause(() => {
// 录屏已暂停;
})

recorder.onResume(() => {
// 录屏已恢复;
})

recorder.pause()

recorder.resume()

videoRecorderManager.onResume()

监听录屏继续事件。

1
videoRecorderManager.onResume(callback)

参数值:

属性 类型 是否必填 描述
callback function 监听继续录屏事件的回调函数

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
const recorder = swan.getVideoRecorderManager();

recorder.onPause(() => {
// 录屏已暂停;
})

recorder.onResume(() => {
// 录屏已恢复;
})

recorder.pause()

recorder.resume()

videoRecorderManager.stop()

停止录屏,应在录屏开始后调用。可以通过 onStop 接口监听录屏结束事件,获得录屏后的视频地址。

1
videoRecorderManager.stop()

代码示例

1
2
3
4
5
6
7
const recorder = swan.getVideoRecorderManager();

recorder.onStop(res => {
console.log(res.videoPath);
})

recorder.stop();

videoRecorderManager.onStop()

监听录屏结束事件,并获得录屏地址。

1
videoRecorderManager.onStop(callback)

参数值:

属性 类型 是否必填 描述
callback function 监听录屏结束事件的回调函数

回调函数参数值:

属性 类型 描述
res Object 回调函数的参数
videoPath string 录屏文件的临时路径

示例

1
2
3
4
5
6
7
const recorder = swan.getVideoRecorderManager();

recorder.onStop(res => {
console.log(res.videoPath);
})

recorder.stop();

videoRecorderManager.onError()

监听录屏错误事件。

1
videoRecorderManager.onError(callback)

参数值:

属性 类型 是否必填 描述
callback function 监听录屏错误事件的回调函数

回调函数参数值:

属性 类型 描述
res Object 错误信息
res.errMsg string 错误信息

代码示例

1
2
3
4
5
const recorder = swan.getVideoRecorderManager();

recorder.onError(() => {
// 录屏已暂停;
})