如何将 nsdata 转换为 MPMediaitem 歌曲 iOS Sdk
Posted
技术标签:
【中文标题】如何将 nsdata 转换为 MPMediaitem 歌曲 iOS Sdk【英文标题】:how to convert nsdata to MPMediaitem song iOS Sdk 【发布时间】:2012-04-23 07:29:47 【问题描述】:我将 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 转换为 NSData。但它在我身边不起作用。你知道是什么原因吗? 【参考方案1】:你不能。 MPMediaItem
代表 iPod 库中的一个项目,但第三方应用程序无法向该库添加任何内容。
但是,您可以将 NSData
对象写入文件,然后将其 URL 与 AVPlayerItem
/AVPlayer
或 MPMoviePlayerController
一起使用(不要被名称所迷惑,它也可以仅播放音频文件)。
【讨论】:
感谢您的回复...您能否发布一些代码以使用 AVPlayer 和我存储的 NSData 对象播放歌曲...这对我非常有用 如何获取MPMediaItem的NSData?以上是关于如何将 nsdata 转换为 MPMediaitem 歌曲 iOS Sdk的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UIImage 转换为 NSData 或 CFDataRef?
如何将 CMSampleBufferRef 转换为 NSData