gpt4 book ai didi

ios - 哪些CMTime是无效的?

转载 作者:行者123 更新时间:2023-11-29 00:01:06 25 4
gpt4 key购买 nike

kCMTimeInvalid是无效的CMTime,但是根据Apple文档,还有更多无效的CMTime,它们是什么?CMTime“无效”是什么意思?是溢出、未启动还是其他什么?

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

All fields are 0, so you can calloc or fill with 0's to make lots of them. Do not test against this using (time == kCMTimeInvalid), there are many CMTimes other than this that are also invalid. Use CMTIME_IS_INVALID(time) instead.


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

  • 当 flags(CMTimeFlags) kCMTimeFlags_Valid 未设置时。

    kCMTimeFlags_Valid Must be set, or the CMTime is considered invalid.

  • CMTimeAdd的一些操作

+infinity + +infinity == +infinity

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

  • 最佳答案

    有五种可能的状态:

    1. +Infinity:这与 Float.Infinity 类似。这是一个有效值,仅大于任何有限数。你会如何使用它?例如,假设有一个 API 为您提供有关视频中由两个 CMTime 标识的时间范围的信息。您可以使用 (-Infinity, +Infinity) 调用它来询问有关整个视频的信息。
    2. -Infinity:这又类似于 -Float.Infinity。
    3. Indefinite:据我所知,这类似于 Float.NaN。当您不知道要使用什么值时使用它,例如直播的持续时间,如 Apple suggests .例如,使用无穷大是不正确的,因为直播不会永远持续下去。它的持续时间是有限的;我们只是还不知道。
    4. 无效:这是一个不遵守 CMTime 规则的 CMTime 结构。我认为这意味着诸如零或负分母之类的东西。由于 CMTime 是一个 C 结构,它没有被封装,所以有人可以像这样创建一个具有无效值的结构。 C 结构不能有引发异常或返回 nil 的初始化器。
    5. 数值:这是有限值的正常情况。使用 CMTIME_IS_NUMERIC检查这一点。对于上述所有奇怪的情况,它都返回 false。

    关于ios - 哪些CMTime是无效的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49483510/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com