objective-c - 从 ALAsset 获取视频时长

标签 objective-c ios7

您好,我是 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/

相关文章:

iphone - 远程唤醒应用程序,比如从蓝牙设备

objective-c - 解析字符串以打开 URL

ios - 64 位 ios 模拟器中的 TableView 加载问题

uinavigationbar - 让导航栏与 iOS 7 中的状态栏重叠

iphone - 如何解决 iOS 应用程序中的核心位置逻辑

ios - objective-c 谷歌地图委托(delegate)方法 reverseGeocodeCoordinate 方法

ios - 使用 AsyncImageView 将图像加载到 ImageView 宽度

iphone - iOS Sprite Kit 如何水平反射 Sprite ?

ios - 如何使用drawInRect :withAttributes: instead of drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment: in iOS 7

ios - 如何在obj-c中深度复制int