iOS CMTimeMake 和 CMTimeMakeWithSeconds 學習


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM