一个弹幕为一个数据对象。该对象由一系列属性组成;一个属性表示为一个名字/值对。名字由小写字母组成,必要时可以使用下划线_
。每个属性的值具有固定的类型。
类型借用了json的基本数值类型,分别是Number,Boolean,String。数字类型区分整数与浮点数。浮点为双精度浮点(float)。整数为32位无符号整数(int)。
基本属性为弹幕数据的必须属性。每个弹幕数据必须提供所有的基本属性。属性值的有效性由上下文中决定。
text
: String
弹幕文本内容,utf-8 格式编码。
stime
: Number(float)
弹幕出现时视频的所在的时间,单位为秒(seconds)。一般地,如果视频的帧率为60 fps,弹幕时间的最大有效精度为 1/60 秒,超过这个精度,则只考虑相对的先后次序。
样式为弹幕数据的附加属性,其中每一个属性都有默认的值。如果弹幕数据中缺少这一属性,则应该使用该属性的默认值。
color
: Number(int)
0xRRGGBB 格式的颜色值。默认值 0xFFFFFF。
mode
: Number(int)
弹幕模式,枚举值。以下是常用的几个弹幕模式:
- 1 滚动弹幕(默认)
- 4 底部弹幕
- 5 顶部弹幕
数值的具体值设定只为兼容目的。
size
: Number(int)
弹幕字体的像素大小。默认的大小为 25。
每个弹幕数据都出现在特定的上下文中。这体现为弹幕的上下文属性。如果弹幕缺少某个上下文属性,然则可以由相应的上下文确定。当缺少某个上下文时,相应的上下文属性是不确定的。
属性类型应该根据属性意义,在架构服务器应用程序时确定。每个服务器的实现都必须说明其上下文属性的类型及涵义。
以下是常见的上下文属性:
id
区分不同弹幕数据的标识。
cid
弹幕数据所属的频道标识。一般来说一个视频对应一个弹幕频道。
uid
弹幕发送者身份标识。
postdate
弹幕发送时间戳。为了保证时序上的统一,弹幕发送时间戳应该由服务器端按接收到弹幕的时间确定。