2013-05-04 71 views
0

我得到了我QTMovieView當前時間,像這樣:在毫秒QTTime工作

QTTime time = self.movieView.movie.currentTime; 

,然後把它放到SMPTE形式

NSString *SMPTE_string; 
int days, hour, minute, second, frame; 
long long result; 

result = time.timeValue/time.timeScale; // second 
frame = (time.timeValue % time.timeScale)/100; 

second = result % 60; 

result = result/60; // minute 
minute = result % 60; 

result = result/60; // hour 
hour = result % 24; 

days = result; 

SMPTE_string = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", hour, minute, second, frame]; // hh:mm:ss:ff 

但我不想把它結束與幀號碼。我希望它以毫秒爲單位結束(HH:MM:ss.mil)

回答

2

以下應該工作:

double second = (double)time.timeValue/(double)time.timeScale; 
int result = second/60; 
second -= 60 * result; 
int minute = result % 60; 
result = result/60; 
int hour = result % 24; 
int days = result/24; 

NSString *SMPTE_string = [NSString stringWithFormat:@"%02d:%02d:%06.3f", hour, minute, second]; 

該秒被計算爲double代替int,然後使用該印刷 精確到毫秒%06.3f格式。

(請注意,days = result在你的代碼是不正確的。)

如果你喜歡的整數運算,那麼你還可以從 QTTime time

long long milli = (1000 * (time.timeValue % time.timeScale))/time.timeScale; 
+0

非常好,感謝計算毫秒! – vqdave 2013-05-06 00:48:09

+0

感謝它的正常工作... – Jaiswal 2013-10-29 09:18:37