0

私は私のQTMovieViewような現在の時間を取得します:

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)

4

1 に答える 1

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;
于 2013-05-04T15:34:05.707 に答える