我正在寻找一种使用Objective-C的方法将float(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]);
......但那不起作用。格式是正确的,但我找不到正确初始化“差异”日期的方法。
感谢您的帮助!
答案 0 :(得分: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 @"";
}