NSData 的 iPod 库路径

Posted

技术标签:

【中文标题】NSData 的 iPod 库路径【英文标题】:iPod Library path to NSData 【发布时间】:2016-04-18 12:37:04 【问题描述】:

如何将 iPod 库转换为 NSData。 网址是:

ipod-library://item/item.mp3?id=1258203422631791096 

出现错误,但我可以使用 AVPlayer 播放歌曲。

 NSURL *url = [curItem valueForProperty: MPMediaItemPropertyAssetURL];
 NSError *error = nil;
    NSData *data = [NSData dataWithContentsOfFile:[url absoluteString] options:NSDataReadingMappedAlways error:&error];
    NSLog(@"Error : %@",error);

curItem 是一个 MPMediaItem

Error Domain=NSCocoaErrorDomain Code=260 "The file “item.mp3?id=1258203422631791096” couldn’t be opened because there is no such file." UserInfo=NSFilePath=ipod-library://item/item.mp3?id=1258203422631791096, NSUnderlyingError=0x15ff23420 Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"

【问题讨论】:

你必须使用AVAssetExportSession。只有 AVFondation 的东西才应该被允许用“ipod-library”打开文件。 【参考方案1】:

您无法直接访问媒体项目 URL,因为它位于应用程序的沙箱之外。

您需要使用 AVAssetExportSession 获取资产,并将其保存到沙箱中的 URL。您可以从那里获取 NSData - 请参阅此 SO 问题 ios 6 issue Convert MPMediaItem to NSData

【讨论】:

以上是关于NSData 的 iPod 库路径的主要内容,如果未能解决你的问题,请参考以下文章

如何将音频歌曲放入 iPhone 中的 NSdata

我可以创建一个引用内存中 NSData 的 NSURL 吗?

IOS:从照片路径获取 NSData

使用 NSData 解决生产者-消费者问题(用于音频流)

NSData:读取文件的内容[重复]

iPhone - 来自本地文件 URL 的 NSData