1

我将 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。

4

1 回答 1

1

你不能。AnMPMediaItem代表 iPod 库中的一个项目,但第三方应用程序无法向该库添加任何内容。

但是,您可以将NSData对象写入文件,然后将其 URL 与AVPlayerItem/AVPlayer或一起使用MPMoviePlayerController(不要被名称所迷惑,它也可以播放纯音频文件)。

于 2012-04-23T10:37:21.257 回答