2013-05-04 74 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