您好,我是 Objective-C 的新手。我正在使用 AGImagePicker 从手机库中选取图像和视频文件,并将它们显示在 GridView 中。但现在我想获取视频文件的持续时间以使用视频缩略图显示它。我不知道如何从 ALAsset 获取视频时长。任何人请。任何类型的答案将不胜感激。
最佳答案
1)借助ALAssetPropertyDuration获取媒体时长
double value = [[asset valueForProperty:ALAssetPropertyDuration] doubleValue]; //Find the Duraion
[cell.lblMediaLength setText:[self timeFormatted:value]];
2)将总秒数转换为时:分:秒的方法
- (NSString *)timeFormatted:(double)totalSeconds
{
NSTimeInterval timeInterval = totalSeconds;
long seconds = lroundf(timeInterval); // Modulo (%) operator below needs int or long
int hour = 0;
int minute = seconds/60.0f;
int second = seconds % 60;
if (minute > 59) {
hour = minute/60;
minute = minute%60;
return [NSString stringWithFormat:@"%02d:%02d:%02d", hour, minute, second];
}
else{
return [NSString stringWithFormat:@"%02d:%02d", minute, second];
}
}
对于 Swift
func timeFormatted(totalSeconds: Float64) -> String {
let timeInterval: NSTimeInterval = totalSeconds
let seconds: Int = lround(timeInterval)
var hour: Int = 0
var minute: Int = Int(seconds/60)
let second: Int = seconds % 60
if minute > 59 {
hour = minute / 60
minute = minute % 60
return String(format: "%02d:%02d:%02d", hour, minute, second)
}
else {
return String(format: "%02d:%02d", minute, second)
}
}
关于objective-c - 从 ALAsset 获取视频时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22652624/