我正在创建一个播放铃声的应用程序,我想知道每次播放铃声的当前时间(以毫秒为单位)。
CMTime cTime = player_.currentTime; 浮动 currentTime = cTime.value / cTime.timescale;
此处的 currentTime 以秒为单位获取值。如何以毫秒为单位获得确切的 currentTime 值?
我正在创建一个播放铃声的应用程序,我想知道每次播放铃声的当前时间(以毫秒为单位)。
CMTime cTime = player_.currentTime; 浮动 currentTime = cTime.value / cTime.timescale;
此处的 currentTime 以秒为单位获取值。如何以毫秒为单位获得确切的 currentTime 值?
有一种方法可以以秒为单位获取当前时间,您可以将其乘以 1000 倍,然后您就有了毫秒数:
Float64 dur = CMTimeGetSeconds([player currentTime]);
Float64 durInMiliSec = 1000*dur;
可悲的是,您将不得不将其用作 afloat
或者Float64
您不能将该结果用作CMTime
我认为接受的答案会丢失细节。获得毫秒的更准确方法如下:
let seconds : Double = Float64(time.value * 1000) / Float64(time.timescale)
如果你先转换为秒,你会失去精度。
CMTime.value 和 CMTime.timescale 都是整数,因此根据您的代码判断,结果会四舍五入,并且您没有得到精确的时间戳。请改用 CMTimeGetSeconds。