首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以用AVAudioEngine播放iOS音乐库中的歌曲吗?

可以用AVAudioEngine播放iOS音乐库中的歌曲吗?
EN

Stack Overflow用户
提问于 2017-03-14 17:11:53
回答 1查看 691关注 0票数 3

我已经成功地创建了一个AVAudioEngine。它播放项目目录中的本地声音文件。但是我怎样才能在手机上访问音乐图书馆呢?

有没有一种方法可以把AVAudioEngineMPMediaPickerController结合起来?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 18:27:10

是:)

您需要在MPMediaPickerController上设置MPMediaPickerControllerDelegate,以便在用户在MPMediaPickerController中执行某些操作时得到通知。Here是可以在MPMediaPickerControllerDelegate上使用的方法。

如您所见,当用户选择要播放的歌曲时,将调用mediaPicker(_:didPickMediaItems:)方法。这将为您提供一个(MPMediaItemCollection),其中包含包含用户选择的歌曲的items

您可以遍历该集合并查看MPMediaItem类型的各个items

最后,每个MPMediaItem都有一个assetURL,您可以用它在AVAudioEngine中创建单独的节点。

So...something是这样的:

创建MPMediaPickerController的位置

代码语言:javascript
运行
复制
let mediaPicker = MPMediaPickerController(mediaTypes: .anyAudio)
mediaPicker.delegate = self
present(mediaPicker, animated: true, completion: nil)

委托方法

代码语言:javascript
运行
复制
public func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
  for item in mediaItemCollection.items {
     if let assetURL = item.assetURL {
        //There you go :)
     }
  }
}

记住在完成MPMediaPickerController时对其进行委派(并且在取消时也要记住这样做(也有一个用于该委派的方法)。

希望这能为你指明正确的方向。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42781836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档