TXPlayerSubtitleRenderModel

最近更新时间:2025-05-21 18:53:02

我的收藏

TXPlayerSubtitleRenderModel 简介

点播播放器播字幕样式渲染参数。

字段详情

canvasWidth

canvasWidth 和 canvasHeight 是字幕渲染画布的大小, canvasWidth 和 canvasHeight 的比例必须和视频的宽高比一致,否则渲染出的字体会变形。 如果不设置,播放器会取当前视频的大小作为渲染画布的大小。
@property(nonatomic, assign) int canvasWidth;

canvasHeight

canvasWidth 和 canvasHeight 是字幕渲染画布的大小, canvasWidth 和 canvasHeight 的比例必须和视频的宽高比一致,否则渲染出的字体会变形。 如果不设置,播放器会取当前视频的大小作为渲染画布的大小。
@property(nonatomic, assign) int canvasHeight;

familyName

Font family name。iOS 默认为"Helvetica",字符串不为空则认为已设置,为空则认为未设置。
@property(nonatomic, copy) NSString *familyName;

fontSize

字体大小,如果设置了 fontSize,则必须设置 canvasWidth 和 canvasHeight,否则内部不知道以什么大小为参考来渲染字体, 如果不设置 fontSize,内部会使用默认的字体大小。
@property(nonatomic, assign) float fontSize;

fontScale

字体缩放比例, VTT、CSS 专用。使用 fontScale 乘以 VTT 设定的 font-size: em 值再适应视频宽。如果设置了 fontScale,paramFlags 须置为 TP_SUBTITLE_PARAM_FLAG_FONT_SCALE,最终字体像素为 fontScale × VTT em × 16 × canvas width(video width) / default width(491),
fontScale 默认1.0,视频宽491像素时,中文字号设定为16像素大小,将 VTT 文件内字体大小设定为1em(font-size: 1.00em;)。
@property(nonatomic, assign) float fontScale;

fontColor

字体颜色,ARGB 格式。如果不设置,默认为白色不透明(0xFFFFFFFF)。
@property(nonatomic, assign) uint32_t fontColor;

outlineWidth

描边宽度,如果不设置,内部会使用默认的描边宽度。
@property(nonatomic, assign) float outlineWidth;

outlineColor

描边颜色,ARGB 格式。如果不设置,默认为黑色不透明(0xFF000000)。
@property(nonatomic, assign) uint32_t outlineColor;

isBondFontStyle

是否是粗体,默认值为正常字体。
@property(nonatomic, assign) BOOL isBondFontStyle;

lineSpace

行距,如果设置了 lineSpace,则必须设置 canvasWidth 和 canvasHeight,如果不设置,内部会使用默认的行距。
@property(nonatomic, assign) float lineSpace;

startMargin

startMargin、endMargin 和 verticalMargin 定义字幕的绘制区域,如果不设置,则使用字幕文件中的设置,如果字幕文件也没有定义,则使用默认的。
注意:
一旦设置了 startMargin、endMargin 和 yMargin,而字幕文件也定义了这几个参数的一个或多个,则会覆盖字幕文件中相应的参数。
下面示意图描绘了水平书写方向下这几个参数的意义,请借助每个参数的注释来理解。

沿着字幕文本方向的边距,根据不同的书写方向意义不同。 startMargin 是一个比例值,取值范围[0, 1],即相对于视频画面大小的比例。
对于水平书写方向,startMargin 表示字幕左边距离视频画面左边的距离,例如 startMargin=0.05 则边距为视频宽度的0.05倍(5%) 。
对于垂直书写方向(无论从右到左还是从左到右),startMargin 表示字幕顶部距离视频画面顶部的距离,例如 startMargin=0.05 则边距为视频高度的0.05倍(5%)。
@property(nonatomic, assign) float startMargin;

endMargin

沿着字幕文本方向的边距,根据不同的书写方向意义不同。endMargin 是一个比例值,取值范围[0, 1],即相对于视频画面大小的比例。
对于水平书写方向,endMargin 表示字幕右边距离视频画面右边的距离,例如 endMargin=0.05 则边距为视频宽度的0.05倍(5%)。
对于垂直书写方向(无论从右到左还是从左到右),endMargin 表示字幕底部距离视频画面底部的距离,例如 endMargin=0.05 则边距为视频高度的0.05倍(5%)。
@property(nonatomic, assign) float endMargin;

verticalMargin

垂直字幕文本方向的边距,不同的书写方向意义不同。verticalMargin 为一个比例值,取值范围[0, 1],即相对于视频画面大小的比例。
对于水平书写方向,yMargin 表示字幕底部距离视频画面底部的距离,例如 yMargin=0.05 则边距为视频高度的0.05倍(5%)。
对于垂直、从右至左书写方向,yMargin 表示字幕右边距离视频画面右边的距离,例如 yMargin=0.05 则边距为视频宽度的0.05倍(5%)。
对于垂直、从左至右书写方向,yMargin 表示字幕左边距离视频画面左边的距离,例如 yMargin=0.05 则边距为视频宽度的0.05倍(5%)。
@property(nonatomic, assign) float verticalMargin;