我将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 资料库中的项目,但第三方 App 无法向该资料库添加任何内容。
但是,您可以将NSData
对象写入文件,然后将其URL与AVPlayerItem
/AVPlayer
或MPMoviePlayerController
一起使用(不要被名称所迷惑,它也可以播放纯音频文件)。