我将 MPMediaItem 转换为 NSData 并将其存储在数据库中,现在我必须将该 NSData 转换为 MPMediaItem 才能在媒体播放器中播放该歌曲。
使用下面的代码将 MPMediaItem 转换为 NSData:
NSURL *url = [song valueForProperty: MPMediaItemPropertyAssetURL];
AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL: url options:nil];
AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset: songAsset
presetName: AVAssetExportPresetPassthrough];
exporter.outputFileType = @"public.mpeg-4";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *exportFile = [documentsDirectory stringByAppendingPathComponent:
@"exported.mp4"];
NSURL *exportURL = [[NSURL fileURLWithPath:exportFile] retain];
exporter.outputURL = exportURL;
// do the export
// (completion handler block omitted)
[exporter exportAsynchronouslyWithCompletionHandler:
^{
NSData *data = [NSData dataWithContentsOfFile: [documentsDirectory
stringByAppendingPathComponent: @"exported.mp4"]];
}];
谁能告诉我如何将 NSData 转换为 MPMediaItem。
你不能。一个MPMediaItem
代表 iPod 库中的项目,但第三方应用程序无法向该库添加任何内容。
不过你可以写你的NSData
对象到一个文件,然后使用它的 URLAVPlayerItem
/AVPlayer
or MPMoviePlayerController
(不要被名字所迷惑,它还可以播放纯音频文件)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)