# GameRecorder

> 基础库 2.8.0 开始支持，低版本需做[兼容处理](1003706)。

游戏画面录制对象

## 方法

### [boolean GameRecorder.isFrameSupported()](/minigame/dev/api/game-recorder/GameRecorder.isFrameSupported)

获取是否支持录制游戏画面

### [boolean GameRecorder.isSoundSupported()](/minigame/dev/api/game-recorder/GameRecorder.isSoundSupported)

获取是否在录制游戏画面的同时支持录制游戏音频的信息

### [boolean GameRecorder.isVolumeSupported()](/minigame/dev/api/game-recorder/GameRecorder.isVolumeSupported)

获取是否支持调节录制视频的音量

### [boolean GameRecorder.isAtempoSupported()](/minigame/dev/api/game-recorder/GameRecorder.isAtempoSupported)

获取是否支持调节录制视频的播放速率

### [GameRecorder.start(Object object)](/minigame/dev/api/game-recorder/GameRecorder.start)

开始录制游戏画面

### [Promise GameRecorder.stop()](/minigame/dev/api/game-recorder/GameRecorder.stop)

结束录制游戏画面。结束录制后可以发起分享。

### [Promise GameRecorder.pause()](/minigame/dev/api/game-recorder/GameRecorder.pause)

暂停录制游戏画面。

### [Promise GameRecorder.resume()](/minigame/dev/api/game-recorder/GameRecorder.resume)

恢复录制游戏画面。

### [Promise GameRecorder.abort()](/minigame/dev/api/game-recorder/GameRecorder.abort)

放弃录制游戏画面。此时已经录制的内容会被丢弃。

### [GameRecorder.on(string event, function callback)](/minigame/dev/api/game-recorder/GameRecorder.on)

注册监听录制事件的回调函数。当对应事件触发时，回调函数会被执行。

### [GameRecorder.off(string event, function callback)](/minigame/dev/api/game-recorder/GameRecorder.off)

取消监听录制事件。当对应事件触发时，该回调函数不再执行。

## 错误
| 错误码 | 错误信息 | 说明 |
| -- | ---- | --- |
| 22002 | unknown error | 未知错误，没有被归纳到的错误 |
| 22012 | internal failed | 游戏画面录制 SDK 内部错误 |
| 22022 | frame not supported | 当前设备不支持录制游戏画面 |
| 22103 | duration invalid | duration 参数不合法 |
| 22113 | bitrate invalid | bitrate 参数不合法 |
| 22123 | fps invalid | fps 参数不合法 |
| 22133 | gop invalid | gop 参数不合法 |
| 22143 | start while already start recording | 在已经开始录制的情况下调用 start |
| 22153 | start while already paused | 在已经暂停录制的情况下调用 start，此时只能调用 resume 恢复录制 |
| 22203 | pause while not start recording | 在还没有开始录制的情况下调用 pause |
| 22213 | pause while already paused | 在已经暂停录制的情况下调用 pause |
| 22303 | resume while not start recording | 在还没有开始录制的情况下调用 resume |
| 22313 | resume while recording | 在录制中调用 resume，调用 resume 只能在暂停状态下 |
| 22403 | abort while not start recording | 在还没有开始录制的情况下调用 abort |
| 22503 | stop while not start recording | 在还没有开始录制的情况下调用 stop |
| 22603 | no recorded video | 在还没有一个录制好的对局回放的情况下发起分享 |
| 22613 | bgm not found | share.bgm 指定的额背景音乐不存在 |
| 22623 | time range invalid | share.timeRange 不合法 |
| 22633 | duration out of limit | share.timeRange 的所有片段的总和超出上限 |
| 22643 | time range too short.It should be longer than 2s | share.timeRange 太短 |

## 错误码的使用方法

```javascript
// 可以监听 error 事件
const recorder = wx.getGameRecorder()
recorder.on('error', res => {
  const error = res.error
  if (error.code === wx.error.GameRecorder_StartWhileAlreadyStartRecording) {

  }
})

// 也可以在接口的 Promise 中获取
recorder.stop()
.catch(res => {
  if (res.error.code === wx.error.GameRecorder_StopWhileNotStartRecording) {

  }
})
```
