0

私はObjective-Cでフロート(audioPlayer.currentTime、たとえば= 3.4592)を分と秒の時間文字列(03:46)に変換する方法を探しています

私はこれを試しました:

static NSDateFormatter *date_formatter = nil;
if (date_formatter == nil) {
    date_formatter = [[NSDateFormatter alloc] init];
    [date_formatter setDateFormat:@"mm:ss"];
}
NSDate *diff = [[NSDate alloc] initWithTimeIntervalSinceNow:audioPlayer.currentTime];
NSLog(@"%@", [date_formatter stringFromDate:diff]);

...しかし、それは機能していません。形式は正しいですが、「差分」日付を正しく初期化する方法が見つかりません。

ご協力いただきありがとうございます!

4

1 に答える 1

1

このようにフロートを秒に変換できます

    double d = CMTimeGetSeconds(__avPlayer.currentItem.duration);

次に、メソッドの下に表示するためにそれを NSString に変換する問題が役立つ場合があります

- (NSString *) printSecond:(NSInteger) seconds {

    if (seconds < 60) {
        return [NSString stringWithFormat:@"00:%02d",seconds];
    }

    if (seconds >= 60) {

        int minutes = floor(seconds/60);
        int rseconds = trunc(seconds - minutes * 60);

        return [NSString stringWithFormat:@"%02d:%02d",minutes,rseconds];

    }

    return @"";

}
于 2013-10-31T09:32:23.663 に答える