在W3C TTML dfxp standard中,div元素可以包含begin、end和duration属性。
如何解释这些计时属性的值?
示例:
<div begin="00:00:22.0 end ="00:00:30.0">
<p begin="0s" end="1s">Hi,</p>
<p begin="3s" end="5s">Hello</p>
<p begin="5s" end="10s">there?</p>
</div>什么时候显示p元素?
任何指向TTML规范/实现的指针都会很有帮助。
发布于 2015-04-22 22:45:17
最新的TTML规范在http://www.w3.org/TR/ttml1/上,许多计时语义都来自SMIL 2.1。
你的答案有两个部分:第一,如何计算任何特定内容元素的时间;第二,如何将这些时间与其他用于回放的时间线相关联。
计算时间值
时间的计算取决于几件事。首先,我们可以假设您正在使用允许计算时间的timeBase和markerMode吗?这适用于除一个场景之外的所有场景,因此如果您有timeBase="media"或timeBase="clock",则可以。另外,如果你有timeBase="smpte"和markerMode="continuous"。例外的是,如果你在smpte discontinuous中。
其次,您需要知道父元素上timeContainer属性的值。默认情况下,它是par,这意味着时间是相对于父元素的时间计算的。如果为seq,则时间是相对于它们的同级计算的,或者是相对于第一个子级的父级计算的。
在您的示例中,让我们假设具有连续markerMode的par timeContainer的默认值。然后,每个p的计算时间是它的时间加上父div的开始时间,并被父div的结束时间修剪,给出:
<div begin="00:00:22.0 end ="00:00:30.0">
<p begin="0s" end="1s">Hi,</p> <-- 00:00:22 -> 00:00:23
<p begin="3s" end="5s">Hello</p> <-- 00:00:25 -> 00:00:27
<p begin="5s" end="10s">there?</p> <-- 00:00:27 -> 00:00:30 (cut off by parent)
</div>与回放相关的时间
这里要看的规范中最好的部分可能是附录N。您计算的时间值的解释取决于ttp:timeBase的值
clock表示它们与某个地方的真实时钟有关,例如协调世界时或全球定位系统clock.media表示它们与视频文件等其他媒体中的时间有关。时间0通常与媒体的开始有关,如果需要映射到帧值,则需要知道帧速率etc.smpte意味着它们与其他媒体中的时间代码相关。如果您有discontinuous ttp:markerMode,则所有时间都只是事件标记:在这种情况下,当您在媒体中看到时间代码值时,您可以根据需要开始或结束内容元素。其他东西
我没有提到评估时间表达式本身--有几种可用的语法,包括滴答率的刻度,帧率的帧,小时分钟和分钟的分数等等。
当地时间也是允许的。
在seq timeContainers中,兄弟不能在时间上重叠;在seq timeContainers中,它们可以重叠。
在给出的示例中,不需要同时在div和p上放置时间。如果你喜欢,你也可以把时间放在正文和跨度上。
发布于 2013-10-18 03:35:21
下面是它的工作原理:
Hi, Hi,>d11>告诉播放器在00:00:03显示文本<>d14>.0
Hello there? there? <代码>H224<代码>F225发布于 2014-04-16 21:38:42
时间戳被视为绝对时间戳。在您的例子中,您有父div,它将显示在22秒到30秒之间,但是,所有子元素的时间间隔都在22秒之前。
有关时间表达式的格式,请参阅spec - http://www.w3.org/TR/ttaf1-dfxp/#timing-value-timeExpression中的这一节
时间戳00:00:30.0表示0小时0分30秒及之后“。是秒的分数。可能会有另一个":“,这意味着帧编号,如果有”“,而不是几秒。在帧编号之后,它将指定子帧。帧率和子帧由ttp:frameRate或ttp:subFrameRate定义(有关更多详细信息,请参阅规范。
通常只有"end“或"duration”属性。但是,可能没有指定"begin"/" end "/"duration“中的一个或全部,在这种情况下,该结束将被视为开放。因此,如果没有"begin“,则时间间隔将从"0”开始。如果有"begin",但没有"end“或"duration",那么它将在指定的时间开始,并始终显示在指定时间之后。
https://stackoverflow.com/questions/17450411
复制相似问题