AVFoundationとCMTimeを使用するアプリケーションを作成しています。CMTime
を使用して作成したインスタンスの値をログに記録しましたCMTimeMake()
。この値は、最も近い整数に丸められているようです。CMTime
丸めることなく、正確な値を持つインスタンスが必要です。
私は参考文献で丸め定数を見てきましたCMTime
:
enum {
kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1,
kCMTimeRoundingMethod_RoundTowardZero = 2,
kCMTimeRoundingMethod_RoundAwayFromZero = 3,
kCMTimeRoundingMethod_QuickTime = 4,
kCMTimeRoundingMethod_RoundTowardPositiveInfinity = 5,
kCMTimeRoundingMethod_RoundTowardNegativeInfinity = 6,
kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero
};
これらの戦略のどれをCMTime
インスタンスに適用するかを制御する方法の例はありませんか?CMTime
または、これが正しくない場合、インスタンスから正確な値を抽出するにはどうすればよいですか?
編集:
私は見つけてテストしましCMTIME_HAS_BEEN_ROUNDED()
た。CMTime
インスタンスをこの関数に渡すと、インスタンスが返されますNo
(値が丸められていないことを示します)。では、なぜ私は精度を失っているのですか?