我正在创建一个播放铃声的应用程序,并且希望每次播放铃声时知道当前时间的毫秒数。
CMTime cTime = player_.currentTime; float currentTime = cTime.value / cTime.timescale;
这里的currentTime获得的值是以秒为单位的。 如何获得确切的以毫秒为单位的currentTime值?
我正在创建一个播放铃声的应用程序,并且希望每次播放铃声时知道当前时间的毫秒数。
CMTime cTime = player_.currentTime; float currentTime = cTime.value / cTime.timescale;
这里的currentTime获得的值是以秒为单位的。 如何获得确切的以毫秒为单位的currentTime值?
有一种方法可以获取当前时间的秒数,你可以将其乘以1000得到毫秒:
Float64 dur = CMTimeGetSeconds([player currentTime]);
Float64 durInMiliSec = 1000*dur;
不幸的是,你必须将其作为float
或Float64
使用,你不能将该结果用作CMTime
我认为被接受的答案缺乏细节。获取毫秒的更准确方法如下:
let seconds : Double = Float64(time.value * 1000) / Float64(time.timescale)
CMTime.value和CMTime.timescale都是整数,所以根据你的代码,结果会被四舍五入,你无法得到精确的时间戳。尝试使用CMTimeGetSeconds代替。