跳到主要内容

数据类型

直播助理服务器向客户端发送各种类型的数据类型,客户端应当只请求需要的数据类型。关于如何发送请求,请参见这里

提示

要正确请求数据类型,请以驼峰命名发送名称。例如,要请求 Audience Update 数据类型,请发送 audienceUpdate 而不是 audience-updateAudienceUpdate

通用字段

时间戳

timestamp 是一个 Unix 时间戳,单位为毫秒。

信息

这个时间戳可能是直播平台提供的时间或是服务器接收到数据的时间。

位置数据

所有位置相关的数据都使用屏幕坐标系。原点在屏幕的左上角,x 轴水平,y 轴垂直。值总是 number/double

共享的数据

一些数据会被不同的数据类型共享:

字符串内容

StringContentPayload 用于发送一个字符串,包含可选的语言、发音、翻译和翻译语言。

type StringContentPayload = {
string: string
language?: string
pronunciation?: string
translation?: string
translationLanguage?: string
}

图片内容

ImageContentPayload 用于发送一个图片 URL,包含可选的数据 URL。

信息

数据 URL 只在图片 URL 有 CORS 限制时提供。数据 URL 是图片的 base64 编码版本,格式为 data:[CONTENT-TYPE];base64,XXXXXXXXXXXXX...

type ImageContentPayload = {
url: string
dataUrl?: string
}

徽章

BadgePayload 表示一个观众可能会佩戴的徽章。

type BadgePayload = {
displayName?: StringContentPayload
level: number
image?: ImageContentPayload
color?: string
}

观众

AudiencePayload 表示一个正在观看直播的观众。

警告

这一数据可能不是最新的。例如,一些直播平台在通过 API 连接发送聊天消息时不会提供头像 URL。如果客户端想要更新 UI 或数据库中的数据,它同时需要请求 audienceUpdate 数据类型。更多信息请参见这里

type AudiencePayload = {
id: string
username?: StringContentPayload
avatar?: ImageContentPayload
level: number
badges: BadgePayload[]
isModerator: boolean
isMember: boolean
}

SKU

SkuPayload 表示一个可以购买的 SKU。

type SkuPayload = {
id: string
displayName: StringContentPayload
image?: ImageContentPayload
amount: number
currency: string
level: number
}

表情

EmotePayload 表示一个可以在聊天中使用的表情,它通常会以行内的形式显示在聊天消息中。

客户端应当在可能的时候将匹配的表情关键字替换为表情图片。

type EmotePayload = {
id: string
keyword: string
image: ImageContentPayload
}