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 回答