# agora::rtc::IVideoMixerSource类 参考 (/zh-CN/api-reference/rtc-server-sdk/cpp/classagora-1-1rtc-1-1-i-video-mixer-source)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

继承自 agora::RefCountInterface.

<a id="details"></a>

## 详细描述 [#详细描述]

## 成员函数说明 [#成员函数说明]

<a id="ae40451b2417642d1bf63f5420b858507"></a>

### addVideoTrack() [#addvideotrack]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::addVideoTrack(const char * *id*, [agora_refptr](/zh-CN/api-reference/rtc-server-sdk/cpp/classagora-1-1agora-refptr)&lt; [IVideoTrack](/zh-CN/api-reference/rtc-server-sdk/cpp/classagora-1-1rtc-1-1-i-video-track) &gt; *track*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

向流增加视频轨道。

<ParameterList title="参数">
<Parameter name="id">

流 ID。

</Parameter>
<Parameter name="track">

用于合图的视频轨道。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="add4230742e8c247bfcd195d2c9eb716f"></a>

### removeVideoTrack() [#removevideotrack]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::removeVideoTrack(const char * *id*, [agora_refptr](/zh-CN/api-reference/rtc-server-sdk/cpp/classagora-1-1agora-refptr)&lt; [IVideoTrack](/zh-CN/api-reference/rtc-server-sdk/cpp/classagora-1-1rtc-1-1-i-video-track) &gt; *track*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

从流中删除视频轨道。

<ParameterList title="参数">
<Parameter name="id">

流 ID。

</Parameter>
<Parameter name="track">

需要删除的视频轨道。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-1"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="ac826c24aacb08b50da12a8a92f232749"></a>

### setStreamLayout() [#setstreamlayout]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::setStreamLayout(const char * *id*, const [MixerLayoutConfig](/zh-CN/api-reference/rtc-server-sdk/cpp/structagora-1-1rtc-1-1-mixer-layout-config) & *config*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

配置流中的视频布局。

<ParameterList title="参数">
<Parameter name="id">

流 ID。

</Parameter>
<Parameter name="config">

布局配置。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-2"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="aaf31620d98bffdf1176f619f81f3e718"></a>

### delStreamLayout() [#delstreamlayout]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::delStreamLayout(const char * *id*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

删除视频布局。

<ParameterList title="参数">
<Parameter name="id">

流 ID。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-3"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="a5aaf3b865e223b598bedcbf3f2bebf1e"></a>

### addImageSource() [#addimagesource]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::addImageSource(const char * *id*, const [MixerLayoutConfig](/zh-CN/api-reference/rtc-server-sdk/cpp/structagora-1-1rtc-1-1-mixer-layout-config) & *config*, [ImageType](/zh-CN/api-reference/rtc-server-sdk/cpp/namespaceagora-1-1rtc#a2bb24f13233850a63fb152366902bd75) *type* = [`kPng`](/zh-CN/api-reference/rtc-server-sdk/cpp/namespaceagora-1-1rtc#a2bb24f13233850a63fb152366902bd75a81830984dc6493ee9dc1f20cfecab173), aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

向流添加图像源。

<ParameterList title="参数">
<Parameter name="id">

流 ID。

</Parameter>
<Parameter name="config">

布局配置。

</Parameter>
<Parameter name="type">

图像类型。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-4"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="a52c0f2b52ba27f6762337364963b3464"></a>

### delImageSource() [#delimagesource]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::delImageSource(const char * *id*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

删除图像源。

<ParameterList title="参数">
<Parameter name="id">

流 ID。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-5"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="a29726accf5b89238abda9122fd598188"></a>

### clearLayout() [#clearlayout]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::clearLayout(aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

删除全部布局设置。

<ParameterList title="参数">
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-6"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="a36f13e12798900ee54243f86478da9f6"></a>

### refresh() [#refresh]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::refresh(aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

刷新布局。

<ParameterList title="参数">
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-7"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="aed51f2730614bda9514d312b103dbce8"></a>

### setBackground() [1/2] [#setbackground-12]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::setBackground(uint32_t *width*, uint32_t *height*, int *fps*, uint32_t *color_argb* = `0`, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

设置合图背景。

<ParameterList title="参数">
<Parameter name="width">

画布宽度（px）。

</Parameter>
<Parameter name="height">

画布高度（px）。

</Parameter>
<Parameter name="fps">

混合视频流的 fps。

</Parameter>
<Parameter name="color_argb">

背景色（argb）。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-8"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="a2aa3311b08c7f47fe139633a634c6a53"></a>

### setBackground() [2/2] [#setbackground-22]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::setBackground(uint32_t *width*, uint32_t *height*, int *fps*, const char * *url*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

设置合图背景图片。

<ParameterList title="参数">
<Parameter name="width">

画布宽度（px）。

</Parameter>
<Parameter name="height">

画布高度（px）。

</Parameter>
<Parameter name="fps">

混合视频流的 fps。

</Parameter>
<Parameter name="url">

背景图片 URL。

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-9"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="ac8206ba62fc73ea5898f267ed7c0b87b"></a>

### setRotation() [#setrotation]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::setRotation(uint8_t *rotation*, aosl_ref_t *ares* = `AOSL_REF_INVALID`)

</ApiSignature>

设置合图旋转角度。

<ParameterList title="参数">
<Parameter name="rotation">

旋转角度。

- 0\:无
- 1\:90°
- 2\:180°
- 3\:270°

</Parameter>
<Parameter name="ares">

用于 SDK 的生命周期保护，填写默认值即可。

</Parameter>
</ParameterList>

<h4 data-toc-hidden="true" id={"返回值-10"}>返回值</h4>

- 0: 成功。
- &lt;0: 失败。

<a id="a7d3864a698467757c9185f06deb6877e"></a>

### getAvgMixerDelay() [#getavgmixerdelay]

<ApiSignature labels="pure virtual">

virtual int agora::rtc::IVideoMixerSource::getAvgMixerDelay()

</ApiSignature>

获取合图模块造成的平均延迟（ms），包括合图功能延迟和编码器延迟。

<h4 data-toc-hidden="true" id={"返回值-11"}>返回值</h4>

平均延迟（ms）
