首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使CMTime具有非常小的值

使CMTime具有非常小的值
EN

Stack Overflow用户
提问于 2017-02-23 08:08:22
回答 2查看 1.9K关注 0票数 2

我有一个小整数值,我想把它转换成CMTime。

问题是

CMTime(值:_,timeScale:_)

CMTimeMakeWithSeconds(值:_,timeScale:_)

将始终返回地板,以便时间总是等于0.0 seconds

代码语言:javascript
复制
let smallValue = 0.0401588716
let frameTime = CMTime(Int64(smallValue) , timeScale: 1) 
//frameTime is 0.0 seconds because of Int64 conversion

let frameTimeInSeconds = CMTimeMakeWithSeconds(smallValue , timeScale: 1) 
// frameTimeInSeconds also returns 0.0 seconds.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-23 08:44:18

CMTime将时间值表示为带有整数分子( value)和分母( timescale)的有理数。为了表示像您这样的小值,您必须选择更大的时间刻度(取决于所需的精度)。示例:

代码语言:javascript
复制
let smallValue = 0.0401588716
let frameTime = CMTime(seconds: smallValue, preferredTimescale: 1000000) 

print(frameTime.seconds) // 0.040158
票数 1
EN

Stack Overflow用户

发布于 2017-02-23 08:51:23

在发表这个问题之前,我应该先考虑一下。

代码语言:javascript
复制
 let smallValue =  0.0401588716
 let oneSec =      CMTimeMakeWithSeconds(1, timeScale: 1) 
 let frameTime =   CMTimeMultiplyByFloat64(oneSec , smallValue)
 print(CMTimeGetSeconds(frameTime))                              //  0.040158872
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42410190

复制
相关文章

相似问题

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