更新云端录制合流布局

更新时间不可用

更新进行中的合流录制任务布局。

POST
https://api.sd-rtn.com/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/updateLayout

updateLayout 方法用于更新云端录制合流布局。

开始合流录制后,你可以调用该方法(updateLayout)更新合流布局。

每次调用该方法都会覆盖原来的布局设置。例如,在开始录制时设置了 backgroundColor 为 "#FF0000"(红色),如果调用 updateLayout 方法更新合流布局时如果不再设置 backgroundColor 字段,背景色就会变为黑色(默认值)。

注意

  • updateLayout 请求仅在会话内有效。如果录制启动错误,或录制已结束,调用 updateLayout 将返回 404。
  • 如果需要连续调用 updateLayout 方法更新合流布局,请在收到上一次 updateLayout 响应后再进行调用,否则可能导致请求结果与预期不一致。

路径参数

appidstring
必填

你的项目使用的 App ID。

  • 对于页面录制模式,只需输入开通了云端录制服务的 App ID。
  • 对于单流和合流录制模式,必须使用和待录制的频道相同的 App ID,且该 App ID 需要开通云端录制服务。
resourceidstring
必填

通过 acquire 请求获取到的 Resource ID。

sidstring
必填

通过 start 获取的录制 ID。

modestring
必填

录制模式。只支持 mix,代表合流录制模式。

请求 Header

Authorizationstring
必填

声网云端录制 RESTful API 仅支持 HTTPS 协议。发送请求时,你需要使用声网提供的客户 ID 和客户密钥生成 Base64 编码凭证,并填入请求头部的 Authorization 字段中。详见实现 HTTP 基本认证。

Content-Typestring

application/json。

请求 Body

字段
cnamestring
必填

录制服务所在频道的名称。需要和你在 acquire 请求中输入的 cname 相同。

uidstring
必填

字符串内容为录制服务在 RTC 频道内使用的 UID,用于标识该录制服务,需要和你在 acquire 请求中输入的 uid 相同。

maxResolutionUidstring

仅需在垂直布局下设置。指定显示大视窗画面的用户 UID。字符串内容的整型取值范围 1 到 (232-1),且不可设置为 0。

mixedVideoLayoutnumber

视频合流布局:

  • 0:悬浮布局。第一个加入频道的用户在屏幕上会显示为大视窗,铺满整个画布,其他用户的视频画面会显示为小视窗,从下到上水平排列,最多 4 行,每行 4 个画面,最多支持共 17 个画面。
  • 1:自适应布局。根据用户的数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持 17 个画面。
  • 2:垂直布局。指定 maxResolutionUid 在屏幕左侧显示大视窗画面,其他用户的小视窗画面在右侧垂直排列,最多两列,一列 8 个画面,最多支持共 17 个画面。
  • 3:自定义布局。由你在 layoutConfig 字段中自定义合流布局。
backgroundColorstring

视频画布的背景颜色。支持 RGB 颜色表,字符串格式为 # 号和 6 个十六进制数。默认值 "#000000",代表黑色。

backgroundImagestring

视频画布的背景图的 URL。背景图的显示模式为裁剪模式。

裁剪模式:优先保证画面被填满。背景图尺寸等比缩放,直至整个画面被背景图填满。如果背景图长宽与显示窗口不同,则背景图会按照画面设置的比例进行周边裁剪后填满画面。

defaultUserBackgroundImagestring

默认的用户画面背景图的 URL。

配置该字段后,当任一⽤户停止发送视频流超过 3.5 秒,画⾯将切换为该背景图;如果针对某 UID 单独设置了背景图,则该设置会被覆盖。

用户的合流画面布局。由每个用户对应的布局画面设置组成的数组,支持最多 17 个用户。

注意:仅需在自定义布局下设置。

用户的背景图设置。

响应

如果返回的 HTTP 状态码为 200,表示请求成功。

响应 Body

cnamestring

录制的频道名。

uidstring

字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识频道内的录制服务。

resourceIdstring

云端录制使用的 Resource ID。

sidstring

录制 ID。标识一次录制周期。

请求示例

Example Request
curl --request POST \
  --url "https://api.sd-rtn.com/v1/apps/:appid/cloud_recording/resourceid/:resourceid/sid/:sid/mode/:mode/updateLayout" \
  --header 'Authorization: Basic <credentials>' \
  -H 'Content-Type: application/json' \
  -d '{
  "cname": "<your_channel_name>",
  "uid": "<unique_user_id>",
  "clientRequest": {
    "mixedVideoLayout": 3,
    "backgroundColor": "#FF0000",
    "layoutConfig": [
      {
        "uid": "<uid1_to_be_mixed>",
        "x_axis": 0.1,
        "y_axis": 0.1,
        "width": 0.1,
        "height": 0.1,
        "alpha": 1,
        "render_mode": 1
      },
      {
        "uid": "<uid2_to_be_mixed>",
        "x_axis": 0.2,
        "y_axis": 0.2,
        "width": 0.1,
        "height": 0.1,
        "alpha": 1,
        "render_mode": 1
      }
    ]
  }
}'

响应示例

{
  "cname": "录制的频道名。",
  "uid": "字符串内容为云端录制服务在 RTC 频道内使用的 UID,用于标识频道内的录制服务。",
  "resourceId": "云端录制使用的 Resource ID。",
  "sid": "录制 ID。标识一次录制周期。"
}