设置并更新混音音量
本文介绍如何在转码推流时设置并更新用户的混音音量。
设置混音音量
在 Create 请求时,通过 converter.transcodeOptions.audioOptions 字段设置混音配置。
示例一:指定混音
将指定用户进行混音,并分别设置各用户混音音量。
暂时只支持不超过 3 名用户进行混音。如果参与混音的用户人数大于 3,请联系技术支持。
{
  "converter": {
    "name": "string",
    "transcodeOptions": {
      "rtcChannel": "string",
      "audioOptions": {
        "rtcStreamUids": [
          3, 4
        ],
        "volumes": [
          {
            "volume": 50,
            "rtcStreamUid": 3
          }
        ]
      }
    },
    "rtmpUrl": "rtmp://example/live/global",
  }
}
在本示例中,rtcStreamUids 指定用户 3 和 4 进行混音。volumes 指定用户 3 的混音音量为 50,指定用户 4 的混音音量为 volume 默认值 100。
示例二:全部混音(不推荐)
将所有用户进行混音,并分别设置各用户混音音量。
{
  "converter": {
    "name": "string",
    "transcodeOptions": {
      "rtcChannel": "string",
      "audioOptions": {
        "volumes": [
          {
            "volume": 50,
            "rtcStreamUid": 3
          }
        ]
      }
    },
   "rtmpUrl": "rtmp://example/live/global",
  }
}
在本示例中,audioOptions 中无 rtcStreamUids,代表将所有用户混音。volumes 指定用户 3 的混音音量为 50,其余用户的混音音量为 volume 默认值 100。
注意事项
只有在混音场景下,才可以设置参与混音的用户的音量。因此请注意如下事项:
- 如果 
audioOptions中存在rtcStreamUids字段且值为空,那么代表不混合任何用户的音频流。因此这种情况下你不能设置混音音量。 volumes.rtcStreamUid中填入的用户 UID 需要存在于rtcStreamUids。
更新混音音量
在 Update 请求时,通过 converter.transcodeOptions.audioOptions 字段更新混音配置。
示例一:更新指定音量
本节介绍如何更新指定用户的音量。
假设用户 3 和 4 参与混音,且设置混音音量为 volume 默认值 100。进行如下更新设置:
{
  "converter": {
    "transcodeOptions": {
      "audioOptions": {
        "volumes": [
          {
            "volume": 50,
            "rtcStreamUid": 3
          }
        ]
      }
    }
  },
  "fields": "transcodeOptions.audioOptions.volumes"
}
在本示例中,用户 3 的音量更新为 50,用户 4 的音量保持为 100。然后再次进行如下更新设置:
{
  "converter": {
    "transcodeOptions": {
      "audioOptions": {
        "volumes": [
          {
            "volume": 50,
            "rtcStreamUid": 3
          },
          {
            "volume": 150,
            "rtcStreamUid": 4
          }
        ]
      }
    }
  },
  "fields": "transcodeOptions.audioOptions.volumes"
}
在本示例中,用户 3 的音量保持为 50,用户 4 的音量更新为 150。然后再次进行如下更新设置:
{
  "converter": {
    "transcodeOptions": {
      "audioOptions": {
        "volumes": [
          {
            "volume": 50,
            "rtcStreamUid": 4
          }
        ]
      }
    }
  },
  "fields": "transcodeOptions.audioOptions.volumes"
}
在本示例中,用户 3 的音量在更新请求中没有设置,会重置成 volume 默认值 100。用户 4 的音量更新成 50。
示例二:重置所有音量
本节介绍设置并更新音量后,将所有混音用户的音量重置成默认值 100 的更新设置。
方式一:将 volumes 传空
{
  "converter": {
    "transcodeOptions": {
      "audioOptions": {
        "volumes": null
      }
    }
  },
  "fields": "transcodeOptions.audioOptions.volumes"
}
方式二:不设置 volumes
{
  "converter": {
    "transcodeOptions": {
      "audioOptions": {
      }
    }
  },
  "fields": "transcodeOptions.audioOptions.volumes"
}
注意事项
更新请求会对所有混音用户的音量进行调整。即使你只更新指定用户音量,也会引起其他用户音量被重置成默认值 100。