我是菜鸟,所以请不要以为我知道很多。如果我使用了不正确的术语,请随时告诉我。
我在 SAM 广播器、无线电自动化软件的 PAL 脚本(基于 Pascal / Delphi)中有一个函数。
该函数返回与音乐文件相关的数据库记录中提示点 1 的时间(以毫秒为单位)。
我希望在我的脚本主体中调用这个函数的输出,因为你可能是一个变量。但它需要表示为 hh:mm:ss 时间戳。
这是函数,它的输出可能为 20000,持续 20 秒。
var CP : Integer = 0;
function ExtractCP(Song : TSongInfo):Integer;
var
P : Integer;
XFade : String;
begin
Result := -1;
XFade := Trim(Song['xfade']);
WriteLn('Decoding XFade string');
WriteLn('XFade: '+XFade);
if XFade = '' then
Result := -1
else
begin
P := Pos('ct0=',XFade); {Where 0 is the Custom Cue Point Number}
if (P > 0) then
begin
Delete(XFade,1,P+2);
P := Pos('&',XFade);
if (P>0) then
Delete(XFade,P,Length(XFade));
Result := StrToIntDef(XFade,-1);
WriteLn('CP time detected: '+XFade);
end;
end;
end;
这是实现组件。
while (Song['songtype']='S') and (not Skip) do
begin
VAR DT : DateTime;
VAR frac : Float;
VAR hours, minutes, seconds, milliseconds : Integer;
hours := 24;
minutes := 60;
seconds := 60;
milliseconds := 1000;
// 1 millisecond as fractional part of a day
frac := 1.0 / hours / minutes / seconds / milliseconds;
frac := frac * cp;
dt := Now + DateTime (frac); {Wait for Cue Point 0}
WriteLn(DateTimeToStr(dt));
PAL.WaitForTime(DT);
Skip := True;
end;
我想我的问题很简单。
未导入计算变量“cp”,如何正确调用该行中的函数结果...
frac := frac * cp;
我在这里得到了帮助(对于完整的背景,包括时间戳计算方法和整个脚本)......
http://support.spacialaudio.com/forums/viewtopic.php?f=23&t=40795&start=15