Utiliser CMtime sans arrondir?
-
29-10-2019 - |
Question
J'écris une application qui utilise AvFoundation et CMtime. J'ai enregistré les valeurs de mon CMTime
instances créées en utilisant CMTimeMake()
. Cette valeur semble être arrondi à l'entier le plus proche. j'ai besoin d'un CMTime
Instance avec une valeur précise, sans arrondie.
J'ai vu les constantes d'arrondi dans le CMTime
référence:
enum {
kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1,
kCMTimeRoundingMethod_RoundTowardZero = 2,
kCMTimeRoundingMethod_RoundAwayFromZero = 3,
kCMTimeRoundingMethod_QuickTime = 4,
kCMTimeRoundingMethod_RoundTowardPositiveInfinity = 5,
kCMTimeRoundingMethod_RoundTowardNegativeInfinity = 6,
kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero
};
Il n'y a pas d'exemple de la façon dont je peux contrôler lequel de ces stratégies est appliqué à un CMTime
exemple? Ou, si ce n'est pas la bonne façon, comment puis-je extraire une valeur précise d'un CMTime
exemple?
Éditer:
J'ai trouvé et testé CMTIME_HAS_BEEN_ROUNDED()
. J'ai passé mon CMTime
Instance à cette fonction et il revient No
(indiquant que la valeur n'a pas été arrondie). Alors pourquoi je perds la précision?
Pas de solution correcte