FChannelMediaRelayConfiguration
跨频道媒体流转发配置信息。
C++
USTRUCT(BlueprintType)
struct FChannelMediaRelayConfiguration
{
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaRelayConfiguration")
FChannelMediaInfo srcInfo = FChannelMediaInfo();
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaRelayConfiguration")
TArray<FChannelMediaInfo> destInfos;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaRelayConfiguration")
int destCount = 0;
FChannelMediaRelayConfiguration(){}
FChannelMediaRelayConfiguration(const agora::rtc::ChannelMediaRelayConfiguration & AgoraData){
srcInfo = FChannelMediaInfo(*(AgoraData.srcInfo));
destCount = AgoraData.destCount;
for(int i = 0; i< destCount; i++){
destInfos.Add(FChannelMediaInfo(AgoraData.destInfos[i]));
}
}
agora::rtc::ChannelMediaRelayConfiguration CreateAgoraData() const {
agora::rtc::ChannelMediaRelayConfiguration AgoraData;
SET_UABT_UECUSTOMDATA_TO_AGORA_PTR_1_ENTRY___MEMALLOC(AgoraData.srcInfo,agora::rtc::ChannelMediaInfo, this->srcInfo)
AgoraData.destCount = destCount;
SET_UABT_TARRARY_CUSTOMDATA_TO_AGORA_ARRAY___MEMALLOC(AgoraData.destInfos, agora::rtc::ChannelMediaInfo, destCount, this->destInfos)
return AgoraData;
}
void FreeAgoraData(agora::rtc::ChannelMediaRelayConfiguration & AgoraData) const {
SET_UABT_UECUSTOMDATA_TO_AGORA_PTR_1_ENTRY___MEMFREE(AgoraData.srcInfo, FChannelMediaInfo)
SET_UABT_TARRARY_CUSTOMDATA_TO_AGORA_ARRAY___MEMFREE(AgoraData.destInfos, destCount, FChannelMediaInfo)
}
};
srcInfo
源频道信息 FChannelMediaInfo,包含如下成员:
- channelName:源频道名。默认值为
NULL
,表示 SDK 填充当前的频道名。 - token:能加入源频道的 token。由你在 srcInfo 中设置的 channelName 和 uid 生成。
- 如未启用 App Certificate,可直接将该参数设为默认值
NULL
,表示 SDK 填充 App ID。 - 如已启用 App Certificate,则务必填入使用 channelName 和 uid 生成的 token,且其中的 uid 必须为 0。
- 如未启用 App Certificate,可直接将该参数设为默认值
- uid:标识源频道中的转发媒体流的 UID。默认值为 0,请勿修改。
destInfos
目标频道信息 FChannelMediaInfo,包含如下成员:
- channelName :目标频道的频道名。
- token:能加入目标频道的 token。由你在 destInfos 中设置的 channelName 和 uid 生成。
- 如未启用 App Certificate,可直接将该参数设为默认值
NULL
,表示 SDK 填充 App ID。 - 如已启用 App Certificate,则务必填入使用 channelName 和 uid 生成的 token。
注意由于目标频道中任意频道的 token 过期会导致所有跨频道推流停止,因此建议你将目标频道的 token 设置为相同的过期时长。
- 如未启用 App Certificate,可直接将该参数设为默认值
- uid:标识目标频道中的转发媒体流的 UID。取值范围为 0 到(2 32-1),请确保与目标频道中的所有 UID 不同。默认值为 0,表示 SDK 随机分配一个 UID。
destCount
目标频道数量,默认值为 0,取值范围为 [0,6]。该参数应与你在 destInfos 中定义的 FChannelMediaInfo 数组的数目一致。