在 nsstring 中显示视频文件的长度,格式为 MM:SS

show length of video file in nsstring with format MM:SS

我使用下面的代码获取文件的长度并将其显示在 NSStirng:

float seconds=0.0;
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
 if (asset){
        seconds = CMTimeGetSeconds(asset.duration);
    }

    NSString *lengthString = [NSString stringWithFormat:@"%0.f:%0.f",seconds / 60, fmod(seconds, 60.0)];

    NSLog(@"Duration: %@", lengthString);

结果是:

1:1

stringWithFormat 中是否有任何选项可以让我们在数字小于 10 的情况下在数字 01 之前加上 0?

换句话说,当数字为 1 时我们如何输出 01 或当数字为 9 时输出 09。另外当数字为 10 时输出也为 10。

您应该使用%02d,在格式化期间将float 转换为int。这也会稍微快一些。

NSString *lengthString = [NSString stringWithFormat:@"%02d:%02d", (int)seconds / 60, (int)seconds % 60];

输入 %02f。例如

 NSString * lengthString = [NSString stringWithFormat:@"%02f:%02f",seconds / 60, fmod(seconds, 60.0)];