我正在开发一个导出存储在 iPod 库中的音频文件的应用程序,但我应该在导出和上传之前验证文件大小(服务器具有固定的最大上传大小):
- 我知道导出文件后,大小会不一样:有什么方法可以估计新的大小吗?
- 主要问题:我可以在导出之前知道原始文件的大小(使用 MPMediaItem 或其他东西),所以我可以告诉用户这个文件无法上传(导出可能需要一段时间)。谢谢。
我正在开发一个导出存储在 iPod 库中的音频文件的应用程序,但我应该在导出和上传之前验证文件大小(服务器具有固定的最大上传大小):
我没有测试过,但 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 将为您提供以字节为单位的大小。
我不确定,但我认为你可以使用:
MPMediaItem *item = [[collection items] objectAtIndex:0];
NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];
NSData *data = [NSData dataWithContentsOfURL:url];
NSLog(@"length %d",[data length]);
问候,
马里亚诺