获取音频文件大小而不导出

时间:2013-12-19 14:54:15

标签: ios iphone mpmediaitem mpmediapickercontroller

我正在开发一个导出存储在iPod库中的音频文件的应用程序,但我应该在导出和上传之前验证文件大小(服务器具有固定的最大上传大小):

  • 我知道导出文件后,大小不一样:有什么方法可以估算新的大小吗?
  • 主要问题:我可以在导出之前知道原始文件大小(使用MPMediaItem或其他东西),因此我可以告诉用户此文件无法上传(导出可能需要一段时间)。 感谢。

2 个答案:

答案 0 :(得分:3)

我还没有测试,但AVAssetExportSession可以帮助你解决这个问题。

MPMediaItem *curItem = musicPlayer.nowPlayingItem;

NSURL *url = [curItem valueForProperty: MPMediaItemPropertyAssetURL];

AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL: url options:nil];

AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset
                                   presetName: AVAssetExportPresetPassthrough];

exporter.estimatedOutputFileLength将以字节为单位给出大小。

答案 1 :(得分:-2)

我不确定,但我认为你可以使用:

MPMediaItem *item = [[collection items] objectAtIndex:0];
NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];
NSData *data = [NSData dataWithContentsOfURL:url];
NSLog(@"length %d",[data length]);

此致

马里亚诺