网站首页 网站源码
namespace Dpz.Core.WebApi.Models;
/// <summary>
/// 视频弹幕
/// </summary>
public class VideoDanmakuDto
{
private string _author;
/// <summary>
/// 发送人
/// </summary>
public string Author
{
get => _author;
set => _author = value.Length > 20 ? value.Substring(0, 20) : value;
}
/// <summary>
/// 颜色
/// </summary>
public int Color { get; set; }
private string _id;
/// <summary>
/// ID
/// </summary>
[MaxLength(255)]
[Required]
public string Id
{
get => _id;
set => _id = value.Length > 255 ? value.Substring(0, 255) : value;
}
private string _text;
/// <summary>
/// 弹幕文本
/// </summary>
[MaxLength(255)]
[Required]
public string Text
{
get => _text;
set => _text = value.Length > 255 ? value.Substring(0, 255) : value;
}
/// <summary>
/// 弹幕出现时间
/// </summary>
public decimal Time { get; set; }
/// <summary>
/// 弹幕位置
/// </summary>
public DanmakuType Type { get; set; }
}
/// <summary>
/// 弹幕类型
/// </summary>
public enum DanmakuType
{
/// <summary>
/// 滚动
/// </summary>
Rolling = 0,
/// <summary>
/// 顶部
/// </summary>
Top = 1,
/// <summary>
/// 底部
/// </summary>
Bottom = 2
}
上述代码定义了一个用于表示视频弹幕的模型类 VideoDanmakuDto
,以及一个枚举 DanmakuType
,用于描述弹幕的类型。以下是对代码的详细解释:
VideoDanmakuDto
类属性:
Author
: 表示发送弹幕的用户。其长度限制为20个字符,超过部分会被截断。Color
: 表示弹幕的颜色,使用整数值来表示颜色(通常是ARGB或RGB格式)。Id
: 弹幕的唯一标识符,最大长度为255个字符,超过部分会被截断。此属性被标记为必填([Required]
)和最大长度限制([MaxLength(255)]
)。Text
: 弹幕的文本内容,最大长度为255个字符,超过部分会被截断。此属性同样被标记为必填和最大长度限制。Time
: 表示弹幕出现的时间,使用 decimal
类型,通常表示为视频播放的时间(例如,秒数)。Type
: 表示弹幕的类型,使用 DanmakuType
枚举来定义。数据验证:
[MaxLength]
和 [Required]
)来进行模型验证,确保在数据传输时符合特定的规则。DanmakuType
枚举Rolling
: 表示滚动弹幕,通常是从右到左移动的弹幕。Top
: 表示在视频顶部显示的弹幕。Bottom
: 表示在视频底部显示的弹幕。整体上,这段代码的功能是为视频弹幕提供一个结构化的表示,包含了弹幕的发送者、颜色、唯一标识符、文本内容、出现时间和类型等信息。通过使用数据注解,确保了数据的有效性和完整性,适合在Web API中使用,以便于前端和后端之间的数据交互。