作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试使用 AVAsset
来录制音频文件,然后首先将其存储在 NSFileManager
上,然后将其转换为 nsdata 我调用 API 以存储起来。
我成功创建了 AVAsset
录音文件并使用第三方类 SCPlayer
播放它。
现在的问题是我不知道如何使用 AVAsset
文件将其保存在文件管理器中,然后在调用 API 后通过将其转换为 NSData
来发送它.
有什么方法可以将 AVAsset
转换为 NSData
???
请帮忙...
最佳答案
您可以执行以下操作:
AVAssetExportSession
将您的 AVAsset
对象导出到文件路径网址。使用 dataWithContentsOfURL
将其转换为 NSData
方法。
NSURL *fileURL = nil;
__block NSData *assetData = nil;
// asset is you AVAsset object
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetHighestQuality];
exportSession.outputURL = fileURL;
// e.g .mov type
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
assetData = [NSData dataWithContentsOfURL:fileURL];
NSLog(@"AVAsset saved to NSData.");
}];
不要忘记在完成任何需要的操作后清理输出文件;)
关于ios - 如何将 AVAsset 转换为 NSData 或将其保存到文件管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28237412/
我是一名优秀的程序员,十分优秀!