我使用“moviePlayer.duration”来查找视频的总时间,但我只得到浮动值, 我如何将浮动值转换为时间格式“HH-MM-SS”
{
duration=moviePlayer.duration;
}
答案 0 :(得分:0)
根据您的要求使用方法:
- (NSString *)timeFormatted:(float)totalSeconds
{
float seconds = totalSeconds % 60;
float minutes = (totalSeconds / 60) % 60;
float hours = totalSeconds / 3600;
return [NSString stringWithFormat:@"%02f:%02f:%02f",hours, minutes, seconds];
}
答案 1 :(得分:0)
在iOS 8中,尝试对float执行模数运算会产生错误。
我采用了将第二个值四舍五入并将其转换为int的方法。这会为iOS 8生成有效的输出。
此外,我在将数据添加到字符串之前添加了有关数据是否有数据的条件检查。
- (NSString *)returnTimeDuration:(float)duration {
// Round time up to nearest second and convert to int
int secondsRounded = ceilf(duration);
// Split it into seconds / minutes / hours
float seconds = secondsRounded % 60;
float minutes = (secondsRounded / 60) % 60;
float hours = secondsRounded / 3600;
// Format with hours if necessary
if (hours > 0.0f) {
return [NSString stringWithFormat:@"%.0f:%02.0f:%02.0f",hours, minutes, seconds];
} else {
// No leading zero is placed on minutes in case you have fewer than 10 minutes
return [NSString stringWithFormat:@"%.0f:%02.0f", minutes, seconds];
}
}
这应该会产生与您在Apple的应用程序中看到的输出相同的输出。
输出示例:
1秒> 0点01分
60秒> 1:00
1000.1秒> 16时41分
10000秒> 2点46分40秒