抖音开放平台Logo
开发者文档
控制台

观众一键同玩能力

收藏
我的收藏
观众一键同玩能力,是指在主播开启了观众连线互动玩法后,开发者使用LiveOpenSDK给开发者提供的接口,可以获取直播间的基本信息及麦位信息,还可以通过接口邀请麦上用户启动玩法,关闭玩法。​
前提条件​
    玩法在开放平台控制台界面开启【观众一键同玩能力】和【弹幕云启动能力】​
    主播开启连线互动玩法​
    用户的宿主版本支持云启动(麦上嘉宾只能通过云启动方式打开玩法)​
注意事项​
接入观众一键同玩能力后,在一个直播间能够有主播、嘉宾多个人开启玩法,观众可以给主播或嘉宾送礼,只有主播能够开启和关闭推送,开启后,直播间内的所有玩法都会收到推送​

玩法需开通能力​

开发者想要使用观众一键同玩能力,需要在开放平台控制台界面开启两个能力。​

观众一键同玩能力​

在开放平台控制台界面,选择自己的玩法,选择【能力】-> 【互动数据】->【观众一键同玩能力】,了解详情

弹幕云启动能力​

嘉宾只能通过云游戏的方式启动玩法,所以需要开启弹幕云启动能力。​
在开放平台控制台界面,选择自己的玩法,选择【能力】-> 【平台基础】->【弹幕云启动】,了解详情

查询直播间麦位信息​

对应抖音开放平台服务器文档:文档链接

语法​

Task<ILinkInfo> QueryLinkmicInfoAsync();

返回数据类型​

ILinkInfo ​

麦位基本信息及麦上用户基本信息列表​
名称​
类型​
说明​
BaseInfo ​
麦位基本信息​
UserList ​
麦上用户基本信息列表​

ILinkBaseInfo ​

麦位基本信息​
名称​
类型​
说明​
LinkerId ​
string​
本次连麦唯一ID​
TotalCount ​
int​
麦位总数​
FreeCount ​
int​
麦位剩余数量​

ILinkUserInfo​

麦上用户基本信息列表​
名称​
类型​
说明​
OpenId ​
string ​
麦上用户的openId​
AvatarUrl ​
string ​
麦上用户的头像​
NickName ​
string ​
麦上用户的昵称​
LinkState ​
int ​
连麦状态;1-已在麦上;2-邀请上麦中​
LinkPosition ​
int ​
麦上用户的麦位位置​
DisableMicrophone ​
int ​
麦上用户是否禁用麦克风;1-未禁用;2-已禁用。​
MicrophoneState ​
int ​
麦上用户麦克风打开/关闭状态;1-已打开;2-已关闭。​
DisableCamera ​
int ​
麦上用户是否禁用摄像头;1-未禁用;2-已禁用。​
CameraState ​
int ​
麦上用户摄像头打开/关闭状态;1-已打开;2-已关闭。​
AppInfo ​
ILinkAppInfo​
麦上用户玩法相关信息​

ILinkAppInfo​

麦上用户玩法相关信息​
名称​
类型​
说明​
HostAppStartAppAvailable​
bool​
麦上用户宿主是否支持云启动玩法​

错误码​

使用try catch的方式捕获Exception,类型为WebcastOpenApiException,可以从其中获取ErrorCodeErrorMessage。​
对应开放平台接口的错误码为 链接

调用示例​

public class Test : MonoBehaviour { public Button Sdk_ShowRoomPanelBtn; private ILiveOpenSdk Sdk => LiveOpenSdk.Instance; Sdk_ShowRoomPanelBtn.onClick.AddListener(async () => { Debug.Log($"获取房间麦位基本信息及麦位列表界面");开发者使用LiveOpenSD var linkInfo = await Sdk.GetRoomInfoService().QueryLinkmicInfoAsync(); }); }

嘉宾云启动玩法​

对应抖音开放平台服务器接口:文档链接

语法​

Task InviteAudienceJoinGameAsync(string openId);

错误码​

使用try catch的方式捕获Exception,类型为WebcastOpenApiException,可以从其中获取ErrorCodeErrorMessage。​
对应开放平台接口的错误码为 链接

调用示例​

void Start() { string userInfoOpenId; // 麦位嘉宾的OpenId可以通过查询直播间麦位信息的接口获得 InviteBtn.onClick.AddListener(async () => { try { await LiveOpenSdk.Instance.GetAudienceLinkmicService()!.InviteAudienceJoinGameAsync(userInfo.OpenId); } catch (WebcastOpenApiException e) { Debug.LogWarning($"\nInvite errCode: {e.ErrorCode}, errMsg: {e.ErrorMessage}, LogId: {e.LogId}"); } }); }

关闭嘉宾玩法​

对应抖音开放平台服务器接口:文档链接

语法​

Task RequestAudienceLeaveGameAsync(string openId);

错误码​

使用try catch的方式捕获Exception,类型为WebcastOpenApiException,可以从其中获取ErrorCodeErrorMessage。​
对应开放平台接口的错误码为 链接

调用示例​

void Start() { string userInfoOpenId; // 麦位嘉宾的OpenId可以通过查询直播间麦位信息的接口获得 LeaveBtn.onClick.AddListener(async () => { try { await LiveOpenSdk.Instance.GetAudienceLinkmicService()!.RequestAudienceLeaveGameAsync(userInfo.OpenId); } catch (WebcastOpenApiException e) { Debug.LogWarning($"\nLeave errCode: {e.ErrorCode}, errMsg: {e.ErrorMessage}, LogId: {e.LogId}"); } }); }

注意事项​

嘉宾结束同玩并关闭云启动游戏​

嘉宾结束同玩并关闭云启动游戏,除了主动调用关闭嘉宾玩法的接口外,还有以下几种情况​
    1.主动下麦​
    2.被主播断开连线​

接入观众同玩能力后对礼物推送的影响​

    1.同一个直播间内的礼物、点赞、评论、粉丝团推送消息会推送到该直播间内的所有玩法​
    2.只有主播的玩法能执行开启/关闭推送接口​
    3.接入观众同玩能力后,在一个主播间中,可能有主播和多个嘉宾同时启动玩法的情况,此时,观众可以指定礼物送给主播或嘉宾,原礼物推送消息将增加字段AudienceSecOpenId,当礼物是送给主播的,则此字段为空,当礼物是送给嘉宾的,则此字段为该嘉宾的OpenId​
/// <summary> /// 送礼消息的数据结构。 /// </summary> public interface IGiftMessage : IPushMessage { /// <summary> /// 送礼用户的信息。 /// </summary> IUserInfo Sender { get; } /// <summary> /// 加密的礼物 ID。 /// </summary> string SecGiftId { get; } /// <summary> /// 送出的礼物数量。 /// </summary> long GiftCount { get; } /// <summary> /// 礼物总价值,单位是分。 /// </summary> long GiftValue { get; } /// <summary> /// 是否为测试数据。 /// </summary> /// <remarks> /// 已报备完成兼容的玩法,对于非真实的测试数据,会下发该字段。 /// </remarks> bool IsTestData { get; } /// <summary> /// 如果被送礼的是嘉宾,则此处为嘉宾的openid /// </summary> string AudienceSecOpenId { get; } }