首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些类型的CMTime无效?

哪些类型的CMTime无效?
EN

Stack Overflow用户
提问于 2018-03-26 03:28:30
回答 1查看 1.2K关注 0票数 0

kCMTimeInvalid是无效的CMTime,但是基于Apple,有更多的无效CMTime,它们是什么?CMTime“无效”是什么意思?溢出了,不熟悉的还是其他什么的?

https://developer.apple.com/documentation/coremedia/kcmtimeinvalid

所有的字段都是0,所以您可以通过计算或填充0来生成大量的字段。不要对此使用(time == kCMTimeInvalid)进行测试,除此之外还有许多CMTimes也是无效的。使用CMTIME_IS_INVALID(时间)代替。

我发现了一些CMTime无效的情况:

  • 未设置标志(CMTimeFlags) kCMTimeFlags_Valid时。 必须设置kCMTimeFlags_Valid,否则CMTime被视为无效。
  • CMTimeAdd的一些操作

+infinity + +infinity == +infinity -infinity + -infinity == -infinity +infinity + -infinity == invalid -infinity + +infinity == invalid

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-23 07:52:27

有五种可能的状态:

  1. +Infinity:这与Float.Infinity类似。这是一个有效值,比任何有限的数字都大。你怎么用呢?例如,假设有一个API为您提供了由两个CMTimes标识的视频中某个时间范围的信息。您可以使用(-Infinity,+Infinity)调用它来询问有关整个视频的信息。
  2. -Infinity:这也与-Float.Infinity类似。
  3. 不确定性:正如我所理解的,这类似于Float.NaN。当您不知道使用什么值时使用这个值,就像使用一个活动流的持续时间一样,比如苹果建议。例如,使用无穷大是不对的,因为活流不会永远持续下去。它有一个有限的持续时间,我们只是还不知道。
  4. 无效:这是一个不遵守CMTime规则的CMTime结构。我想这意味着像零或负分母。因为CMTime是一个C结构,所以没有封装它,所以有人可以创建这样一个值无效的结构。C结构不能有引发异常或返回零的初始化符。
  5. 数值:这是有限值的正常情况。使用数值型检查这一点。对于上述所有奇怪的情况,它都会返回false。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49483510

复制
相关文章

相似问题

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