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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top