首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAssetExportSession estimatedOutputFileLength总是返回0

AVAssetExportSession estimatedOutputFileLength总是返回0
EN

Stack Overflow用户
提问于 2013-01-14 23:15:56
回答 2查看 1.2K关注 0票数 4

存在一个问题,AVAssetExportSessionestimatedOutputFileLength属性总是返回 (并在模拟器上返回)。

我已经尝试了一切,尝试不同的outputFileType,切换shouldOptimizeForNetworkUse,指定(或不指定)outputURL.尽管如此,似乎没有什么是可行的,我开始认为这可能是SDK中的一个bug。

这是我的密码:

代码语言:javascript
复制
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality]; // doesn't matter which preset is used
//exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
NSLog(@"bytes = %lld", exportSession.estimatedOutputFileLength);

我只是搞不懂为什么这不管用!(iOS 6,iPhone 5)

EN

回答 2

Stack Overflow用户

发布于 2013-10-08 02:26:16

您可以通过在timeRange上设置适当的exportSession来解决这个问题:

代码语言:javascript
复制
exportSession.timeRange = CMTimeRangeMake(kCMTimeZero, asset.duration);

在iOS中,在估计文件长度时,AVAssetExportSessionInternal.timeRange似乎没有得到合理的结果。

票数 8
EN

Stack Overflow用户

发布于 2014-10-28 11:08:59

你需要包括计时器。

您打算导出多少文件。如果没有它,它将返回0,

代码语言:javascript
复制
AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset presetName: AVAssetExportPresetAppleM4A];
exporter.outputFileType = AVFileTypeAppleM4A;

CMTime full = CMTimeMultiplyByFloat64(exporter.asset.duration, 1);
exporter.timeRange = CMTimeRangeMake(kCMTimeZero, full);
long long size = exporter.estimatedOutputFileLength;
fileInfo.fileSize = size;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14328576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档