CMTime是專門用於標識電影時間的結構體,通常用如下兩個函數來創建CMTime
(1)CMTimeMake
CMTime CMTimeMake ( int64_t value, //表示 當前視頻播放到的第幾楨數 int32_t timescale //每秒的幀數 );
value = [slider value];
timescale = self.player.currentItem.asset.duration.timescale;
(2) CMTimeMakeWithSeconds
CMTime CMTimeMakeWithSeconds( Float64 seconds, //第幾秒的截圖,是當前視頻播放到的幀數的具體時間 int32_t preferredTimeScale //首選的時間尺度 "每秒的幀數"
);
float minValue = [slider minimumValue];
float maxValue = [slider maximumValue];
float value = [slider value];
seconds = duration * (value - minValue) / (maxValue - minValue);
preferredTimeScale = 1 *NSEC_PER_SEC; //如果只寫 1 的話 有很大的誤差,使用 納秒 也是為了保證指定一個時間播放視頻的精確度 timescale可能就是 1 preferredTimeScale的精確度就更高 1 *NSEC_PER_SEC 具體開發時候 要斟酌 精確度設置的問題 看需求
關鍵詞解釋:
• NSEC:納秒。
• USEC:微妙。
• SEC:秒
• PER:每
所以:
1.NSEC_PER_SEC,每秒有多少納秒。
2.USEC_PER_SEC,每秒有多少毫秒。(注意是指在納秒的基礎上)
3.NSEC_PER_USEC,每毫秒有多少納秒。
1秒可以寫成如下幾種:
1 * NSEC_PER_SEC
1000 * USEC_PER_SEC
USEC_PER_SEC * NSEC_PER_USEC