数据类型
直播助理服务器向客户端发送各种类型的数据类型,客户端应当只请求需要的数据类型。关于如何发送请求,请参见这里。
要正确请求数据类型,请以驼峰命名发送名称。例如,要请求 Audience Update
数据类型,请发送 audienceUpdate
而不是 audience-update
或 AudienceUpdate
。
通用字段
时间戳
timestamp
是一个 Unix 时间戳,单位为毫秒。
这个时间戳可能是直播平台提供的时间或是服务器接收到数据的时间。
位置数据
所有位置相关的数据都使用屏幕坐标系。原点在屏幕的左上角,x 轴水平,y 轴垂直。值总是 number
/double
。
共享的数据
一些数据会被不同的数据类型共享:
字符串内容
StringContentPayload
用于发送一个字符串,包含可选的语言、发音、翻译和翻译语言。
- TypeScript
- C#
type StringContentPayload = {
string: string
language?: string
pronunciation?: string
translation?: string
translationLanguage?: string
}
struct StringContentPayload
{
public string String;
public string? Language;
public string? Pronunciation;
public string? Translation;
public string? TranslationLanguage;
}
图片内容
ImageContentPayload
用于发送一个图片 URL,包含可选的数据 URL。
数据 URL 只在图片 URL 有 CORS 限制时提供。数据 URL 是图片的 base64 编码版本,格式为 data:[CONTENT-TYPE];base64,XXXXXXXXXXXXX...
。
- TypeScript
- C#
type ImageContentPayload = {
url: string
dataUrl?: string
}
struct ImageContentPayload
{
public string Url;
public string? DataUrl;
}
徽章
BadgePayload
表示一个观众可能会佩戴的徽章。
- TypeScript
- C#
type BadgePayload = {
displayName?: StringContentPayload
level: number
image?: ImageContentPayload
color?: string
}
struct BadgePayload
{
public string? DisplayName;
public int Level;
public ImageContentPayload? Image;
public string? Color;
}
观众
AudiencePayload
表示一个正在观看直播的观众。
这一数据可能不是最新的。例如,一些直播平台在通过 API 连接发送聊天消息时不会提供头像 URL。如果客户端想要更新 UI 或数据库中的数据,它同时需要请求 audienceUpdate
数据类型。更多信息请参见这里。
- TypeScript
- C#
type AudiencePayload = {
id: string
username?: StringContentPayload
avatar?: ImageContentPayload
level: number
badges: BadgePayload[]
isModerator: boolean
isMember: boolean
}
struct AudiencePayload
{
public string Id;
public StringContentPayload? Username;
public ImageContentPayload? Avatar;
public int Level;
public BadgePayload[] Badges;
public bool IsModerator;
public bool IsMember;
}
SKU
SkuPayload
表示一个可以购买的 SKU。
- TypeScript
- C#
type SkuPayload = {
id: string
displayName: StringContentPayload
image?: ImageContentPayload
amount: number
currency: string
level: number
}
struct SkuPayload
{
public string Id;
public StringContentPayload DisplayName;
public ImageContentPayload? Image;
public float Amount;
public string Currency;
public int Level;
}
表情
EmotePayload
表示一个可以在聊天中使用的表情,它通常会以行内的形式显示在聊天消息中。
客户端应当在可能的时候将匹配的表情关键字替换为表情图片。
- TypeScript
- C#
type EmotePayload = {
id: string
keyword: string
image: ImageContentPayload
}
struct EmotePayload
{
public string Id;
public string Keyword;
public ImageContentPayload Image;
}