现在我想在iOS中获得歌曲的长度。
- (NSString *)returnofTotalLength
{
float duration = [[self.player.nowPlayingItem valueForProperty:MPMediaItemPropertyPlaybackDuration] floatValue]/60.0f;
NSString *length = [NSString stringWithFormat:@"%.2f",duration];;
NSString *totalLength = [length stringByReplacingOccurrencesOfString:@"." withString:@":"];
return totalLength;
}
以上代码是显示为5:90
的歌曲的总长度。
您知道5:90
不可能是真的,因为60
秒是1
分钟。
应该是6:30
。
所以我想限制1 minute (60 seconds).
我该怎么办请帮助我?
感谢。
答案 0 :(得分:1)
这是简单的数学运算。伪代码:
minutes = (int)(seconds / 60);
rest = seconds % 60;
result = minutes:rest
Objc:
int seconds = 150;
int minutes = (int)(seconds / 60);
int rest = seconds % 60;
return [NSString stringWithFormat:@"%i:%i", minutes, rest];
答案 1 :(得分:1)
执行以下操作:
min=(int)duration/60;
sec=duration%60;
而不是追加分钟和第二
答案 2 :(得分:1)
如果您的时间过了几个小时,那么您可以选择:
NSInteger seconds = duration % 60;
NSInteger minutes = (duration / 60) % 60;
NSInteger hours = duration / (60 * 60);
NSString *result = nil;
result = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", hours, minutes, seconds];
答案 3 :(得分:0)
我刚回答了自己的问题。 谢谢你的其他答案。 :)
NSTimeInterval currentProgress = [[self.player.nowPlayingItem valueForProperty:MPMediaItemPropertyPlaybackDuration] floatValue];
float min = floor(currentProgress/60);
float sec = round(currentProgress - min * 60);
NSString *time = [NSString stringWithFormat:@"%02d:%02d", (int)min, (int)sec];
return time;
这将以完整格式返回NSString
。