Swift 本地音乐assetURL转本地路径

中间鸽了两天,产品又给了新的需求,获取本地音乐并添加到视频中去。08的时候已经获取到本地音乐了,但是发现本地音乐的assetURL路径添加到视频的时候出现问题,需要把它转为本地路径。网上查到AVAssetExportSessionexport方法,由于是OC的,这里把它转为swift.
代码如下:

let everything = MPMediaQuery()
let itemsFromGenericQuery = everything.items
for song in itemsFromGenericQuery! {
      let songTitle = song.value(forProperty: MPMediaItemPropertyTitle) as! String
      let url = song.value(forProperty: MPMediaItemPropertyAssetURL)
      let songAsset = AVURLAsset.init(url: url as! URL)
      let fileManager = FileManager.default
      let dirs = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
      let documentsDirectoryPath = dirs.first
      let exporter = AVAssetExportSession.init(asset: songAsset, presetName: AVAssetExportPresetAppleM4A)
      exporter?.outputFileType = "com.apple.m4a-audio"
      let exportFile = documentsDirectoryPath?.appending(songTitle + ".m4a")
      if fileManager.fileExists(atPath: exportFile!) {
          try? fileManager.removeItem(at: URL.init(string: exportFile!)!)
      }
      let exportURL = URL.init(fileURLWithPath: exportFile!)
      exporter?.outputURL = exportURL
      exporter?.exportAsynchronously(completionHandler: {
          print(exporter!.status)
      }
      print(path!)
      print(exportURL)
}

最后可以查看本地音乐的assetURL和本地路径

本地音乐.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容