Obj-C:将视频的当前时间(双精度)转换为帧(十进制)

Hip*_*tes 0 cocoa objective-c

我的应用程序播放电影,我必须跟踪,并与播放时间进行交互.我使用currentPlaybackTime属性来获取电影播放时间的双倍值.我想用它在某些点触发一些if语句,但首先,如果我能将值转换为只有2位小数的值ss.ff,其中ss是秒,ff是帧,那将首先非常有用.一秒钟内有30帧,所以它会变成0.29到1.0.

谁能帮我这个?谢谢!

小智 5

int seconds = floor(currentPlaybackTime);
int frames = 30 * (currentPlaybackTime - seconds);
double transformedPlaybackTime = seconds + (frames/100.0);
Run Code Online (Sandbox Code Playgroud)

虽然我只使用单独的int秒和int帧,而不是用帧作为小数部分构成假的播放时间.

  • 完全同意你的意见.尝试使用double来表示不是真正的浮点数的东西是要求麻烦,*尤其是*因为大多数所需的值甚至不能表示为双精度.实际上,只有帧0和15可以具有精确的表示. (2认同)