首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TTML中如何计算par和seq timeContainers的隐式持续时间?

在TTML中如何计算par和seq timeContainers的隐式持续时间?
EN

Stack Overflow用户
提问于 2015-05-13 09:39:15
回答 1查看 94关注 0票数 1

以下摘录自http://www.w3.org/2008/12/dfxp-testsuite/web-framework/START.html (MediaSeqTiming002)的TTML测试套件:

代码语言:javascript
复制
<body timeContainer="par">
  <div timeContainer="seq" dur="40s">
    <div timeContainer="seq" dur="20s">
      <metadata>
        <ttm:desc>default duration for elements in this context is 0</ttm:desc>
      </metadata>
      <p begin="00:00:05:00" dur="5s">This text must appear at 5 seconds<br/>and be remain visible to 10 seconds,</p>
      <p begin="00:00:05:00">This text must not appear.</p>
      <p  dur="00:00:05:00">This text must appear at 15 seconds<br/>and be remain visible to 20 seconds,</p>
    </div>
    [...]
  </div>
</body>

第二个<p>元素的文本(第8行)出现的要求不正确吗?我分析了TTML规范(http://www.w3.org/TR/ttaf1-dfxp/),发现了以下内容:

  • “这个文本不能出现”是并行timeContainer中的一个匿名跨度,因此根据10.4 (第一个项目),它的隐式持续时间是不确定的。
  • 包含上述文本的<p>元素有一个隐式持续时间,当它的所有子元素都处于非活动状态时(根据endsync=all表示并行timeContainers),它的隐式持续时间也是不确定的。

因此,我认为“这个文本不能出现”应该从15s开始,到20秒结束,而第三个<p>不应该成为活动的。

测试似乎表明,第二个<p>的隐式持续时间应该是0。

我哪里错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 10:49:49

你没有错;我同意你的结论--参见我在W3C TTML时序属性的解释的解释

你给出的例子--我相信--决心:

  • 从0到5s:没有显示
  • 5s至10s:This text must appear at 5 seconds<br/>and be remain visible to 10 seconds,
  • 10s到15s:没有显示
  • 15至20岁:This text must not appear.
  • 20岁以上:未显示

元数据描述似乎不正确。

分析

TTML1§10.4定时间隔说:

  • 主体、div、p或span元素的隐式持续时间取决于(1)元素是并行的还是顺序的时间容器,(2)上面由10.2.4 timeContainer定义的默认端同步语义,以及(3) SMIL 2.1的语义应用于这些时间容器。

在这种情况下,div元素是(显式的) seq时间容器,而p元素是(隐式的) par时间容器。par timeContainer的隐式持续时间在SMIL 2.1中定义为

内隐持续时间 par的隐式持续时间由endsync控制。默认情况下,par的隐式持续时间由endsync=的“最后”语义定义。隐式持续时间以子元素的最后一个活动结束。

但是,TTML1指定endsync的适用值是"all",这意味着par timeContainer的隐式持续时间实际上是“直到其父timeContainer结束”。

为了完整性,seq timeContainer的隐式dur在SMIL 2.1中定义为

seq容器的隐式持续时间

  • seq的隐式持续时间以seq的最后一个子节点的活动结束。
  • 如果seq的任何子节点具有不确定的活动持续时间,则seq的隐式持续时间也是不定的。

当然,这在这里不适用,因为所有seq timeContainers都显式地指定了持续时间。

解决错误的测试

我把这个测试作为“坏”测试添加到了https://www.w3.org/AudioVideo/TT/tracker/issues/265的所有错误测试中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30211013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档