脚本语法


KBScripts函数说明:
(以下函数为Kbuilder5新增)


设置字幕左边界:
<karaoke>.LeftMargin := <integer>;
例如: karaoke.LeftMargin := 32;


设置字幕右边界:
<karaoke>.RightMargin := <integer>;
例如: karaoke.RightMargin := 32;


设置字幕底边界:
<karaoke>.BottomMargin := <integer>;
例如: karaoke.BottomMargin := 24;


设置字幕水平方向边界, 相当于同时设置左右边界:
<karaoke>.Margin := <integer>;
例如: karaoke.Margin := 24;
这一条语句相当于: karaoke.LeftMargin := 24; karaoke.RightMargin := 24;


设置字幕边界比例:
<karaoke>.MarginRatio := <float>;
例如: karaoke.MarginRatio := 0.09;
当比例值大于等于1时, 则表示是百分比, 要除以100, 比如karaoke.MarginRatio := 10; 表示MarginRatio等于0.1;
边界比例值表示左右边界值取视频画面宽度的比例, 假如做PAL DVD视频, 画面尺寸为720x576, 那么当MarginRatio设置为0.1时,
表示左右边界值都为720x0.1=72; 而底边界为576*0.1=58;


倒计时提示点显示:
<karaoke>.CountDownEnabled := <boolean>; // 默认为true,即显示倒计时提示点
例如: karaoke.CountDownEnabled := true;


自定义倒计时图标:
<karaoke>.SetCountDownIcon(<string>); // 如果对默认的倒计时图标不满意,可以自己制作倒计时图标,文件格式为带透明通道的PNG。
例如: karaoke.SetCountDownIcon('C:\ICONS\CD1.png');


设置提示点图标:
<karaoke>.SetIndicatorIcon(<string>, <string>); // 默认的提示方式是文字,比如男:女:等,可以改为图标显示,图标文件格式为带透明通道的PNG。
例如: karaoke.SetIndicatorIcon('男:', 'C:\ICONS\Male.png'); // 设置男声提示图标。


设置下一行的显示位置:
<karaoke>.Order := <integer>; // 有时需要强制将歌曲中某一行设定为上行显示
例如: karaoke.Order := 0; // 将接下来的歌词行显示在屏幕的第一行,(0-第一行,1-第二行)


(以下函数同时被Kbuilder3和Kbuilder5支持)

把RGB合成为颜色值:
<color-integer> := RGB(r, g, b);
例如: karaoke.TransparentColor := RGB(0, 255, 0); // green
注意: r,g,b的取值范围是0~255


创建卡拉OK对象:
<object-integer> := CreateKaraokeObject;
例如: karaoke := CreateKaraokeObject;


设置字幕是否变色:
<object-integer>.TitleOnly := ;
例如: karaoke.TitleOnly := true;
默认值是false, 字幕在显示时会变色。为true时,不变色。


设置变色边框颜色:
<object-integer>.AnimateBorderColor := <color-integer>;
例如: karaoke.AnimateBorderColor := RGB(255, 255, 255); // white


设置变色边框厚度:
<object-integer>.AnimateBorderThickness := <integer>;

例如: karaoke.AnimateBorderThickness := 1;


设置变色的颜色值:
<object-integer>.AnimateColor := <color-integer>;

例如: karaoke.AnimateColor := RGB(0, 0, 255); // blue


设置相应的音频文件:
<object-integer>.AudioFileName := <string>;

例如: karaoke.AudioFileName := '*.wav'; // *表示与歌词脚本同名的文件


设置颜色深度
<object-integer>.ColorDepth := <integer>;

例如: karaoke.ColorDepth := 24;
注意:颜色深度取值范围: 16,24,32,在插件中该设置无效


设置当前位置(内部使用):
<object-integer>.Position := <integer>; // 单位:毫秒
<object-integer>.Position := <string>; // 格式:'mm:ss.mss'
例如: karaoke.Position := 35000; // 将指针移到35秒处
例如: karaoke.Position := '35:00.000'; // 将指针移到35秒处


设置播放的时间范围:
<object-integer>.StartPos := <integer>; // 单位:毫秒
<object-integer>.EndPos := <integer>; // 同上
例如: karaoke.StartPos := 24000;
例如: karaoke.StartPos := '24:00.000';


第一行(上)对齐方式:
<object-integer>.FirstAlignment := <integer>; // 0, 1, 2:左右中对齐
例如: karaoke.FirstAlignment := 2; // 第一行歌词右对齐
缩进像素: <object-integer>.FirstIndent := <integer>;
例如: karaoke.FirstIndent := 25; // 与右边界保持25像素点距离< BR> 注意: 在单行模式中,只有第一行的设置有效,单行也就是第一行


第二行(下)对齐方式:
<object-integer>.NextAlignment := <integer>; // 0, 1, 2:左中右对齐

缩进像素: <object-integer>.NextIndent := <integer>;


字体设置:
<object-integer>.Font(<string>); // 字型, 如'楷体_GB2312', '宋体'
<ojbect-integer>.Font(<string>, <integer>); // 字型, 大小
<object-integer>.Font(<string>, <integer>, <boolean>); // 字型, 大小, 是否加粗
例如: 设置为“楷体”字, 大小为20, 字体加粗
karaoke.Font('楷体_GB2312', 20, true);


设置每秒帧数:
<object-integer>.FramesPerSec := <integer>;

例如: karaoke.FramesPerSec := 25;
注意: 设置帧率将影响字幕的平滑程度,一般情况下无需设置


图象高度:
<object-integer>.Height := <integer>;

例如: karaoke.Height := 72;
注意: 当autosize设置为true时,图象高度是自动设置的


设置是否以正常速度播放:
<object-integer>.KaraokeMode;

例如: karaoke.KaraokeMode := true;
注意: 内部使用,并且在输出视频时无效


上下两行之间的像素数:
<object-integer>.LineSpace := <integer>;

例如: karaoke.LineSpace := 4;


设置常规边框颜色:
<object-integer>.NormalBorderColor := <color-integer>;

例如: karaoke.NormalBorderColor := RGB(0, 0, 0); // black


设置常规边框厚度:
<object-integer>.NormalBorderThickness := <integer>;

例如: karaoke.NormalBorderThickness := 1;


设置常规颜色:
<object-integer>.NormalColor;

例如: karaoke.NormalColor := RGB(255, 255, 255); // white


设置播放行数(1-2):
<object-integer>.Rows := <integer>;

例如: karaoke.Rows := 2;                              


设置顶部边界值:
<object-integer>.TopMargin := <integer>;

例如: karaoke.TopMargin := 3;


读取歌曲的时间长(内部使用):
<object-integer>.Duration;

例如: len := karaoke.Duration;


设置透明颜色:
<object-integer>.TransparentColor := <color-integer>;

例如: karaoke.TransparentColor := RGB(0, 255, 0);
注意: 插件中无效


设置图象宽度:
<object-integer>.Width := <integer>;

例如: karaoke.Width := 352;


设置提示字颜色(特别适合对唱等场合):
<object-integer>.SetColor(<string>, <integer>);
例如,将女声歌词颜色设置为红色:
karaoke.SetColor('女', RGB(255,0,0));
在歌词中有"(女:)"标记的后面的所有歌词颜色都设置为红色,直到下一个提示字改变


增加歌词行:
<object-integer>.Add(<string>, <string>, <string>, <string>);
参数说明:
1-开始时间, 格式是'mm:ss.mss';
2-结束时间, 同上
3-纯歌词文字
4-时值序列


清除所有歌词描述(也就是Add增加的歌词行):
<object-integer>.Clear;


设置歌词行变色前停留显示的时间(变色前该行提前显示的时间):
<object-integer>.TimeBeforeAnimate := <integer>;

例如: karaoke.TimeBeforeAnimate := 4000;


设置歌词行变色完成后保持显示的时间(变色后该行保持显示的时间):
<object-integer>.TimeAfterAnimate := <integer>;

例如: karaoke.TimeAfterAnimate := 4000;


设置时间偏移(把整个时间往前或后移动):
<object-integer>.TimeOffset := <integer>; // 负数往前, 正数往后,单位:毫秒

例如: karaoke.TimeOffset := -3000; // 把字幕出现的时间提前3秒