Iphone 如何在iOS中获取iPod库中歌曲的物理文件位置

Iphone 如何在iOS中获取iPod库中歌曲的物理文件位置,iphone,ipod,mpmediaitem,Iphone,Ipod,Mpmediaitem,当用户从iPod库中选择n音频时,我有一个MPMediaItem的引用。我通过使用获取该项目的资产url [mediaItem valueForProperty: MPMediaItemPropertyAssetURL] 但这并不是给我文件的确切物理位置,而是给我一个url w.r.t iPod库 ipod-library://item/item.mp3?id=1840064795502796074 有没有办法从iPod库中获取歌曲的物理url 编辑-实际上我想从物理文件中提取NSData并

当用户从iPod库中选择n音频时,我有一个MPMediaItem的引用。我通过使用获取该项目的资产url

[mediaItem valueForProperty: MPMediaItemPropertyAssetURL]
但这并不是给我文件的确切物理位置,而是给我一个url w.r.t iPod库

ipod-library://item/item.mp3?id=1840064795502796074
有没有办法从iPod库中获取歌曲的物理url


编辑-实际上我想从物理文件中提取NSData并将其发送到后端服务器,因此我需要物理文件URL而不是相对URL。这将起作用,但有点慢。此外,它是为新的MP类编写的:

// song is an instance of MPMediaItem

if let val = song.value(forKey: MPMediaItemPropertyAssetURL) as? URL {
   let asset = AVURLAsset.init(url: val)

   if asset.isExportable {
      let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetAppleM4A)

      let exportPath: NSString = NSTemporaryDirectory().appendingFormat("/\(UUID().uuidString).m4a") as NSString
      let exportUrl: NSURL = NSURL.fileURL(withPath: exportPath as String) as NSURL

      exportSession?.outputURL = exportUrl as URL
      exportSession?.outputFileType = AVFileTypeAppleM4A
      exportSession?.exportAsynchronously(completionHandler: {
          // do some stuff with the file
          do {
            try FileManager.default.removeItem(atPath: exportPath as String!)
          } catch {

       }
}

它总是返回一个URL供您在另一个媒体播放器中播放。实际上,我想从物理文件中提取NSData并将其发送到后端服务器,因此我需要的是物理文件URL而不是相对URL。它不会为您提供绝对路径,它总是返回URL或相对路径。我对此做了很多搜索,但什么也没有得到。我还试图从url生成数据,但它给出了0 bytesoooh。。那么,您是如何将音频文件转换为NSData的呢?我没有,我们保留了该功能。。。