iOS + Swift,如何访问所有音乐文件

标签 ios swift

<分区>

我正在使用 swift 在 iOS 中制作应用程序。我想做的是获取 iPhone 存储中的所有音乐文件,就像 iTunes 一样:我想显示标题、专辑以及播放轨道。

我是 iOS 编程的新手:为了实现我的目标,我应该学习和使用什么 iOS 框架?

提前致谢。

最佳答案

这个问题有点不清楚(至少对我而言)。

您想要创建一种音乐播放器应用程序吗?您要添加自己的音乐 (A) 还是使用用户在他的音乐应用程序库 中的音乐 (B)?

在第二种情况下,您可能正在寻找类似的东西。

音乐文件由 MPMediaItem 实例表示。您可以使用通过 MPMediaQuery 检索它们,例如:

// All
let mediaItems = MPMediaQuery.songsQuery().items
// Or you can filter on various property
// Like the Genre for example here
var query = MPMediaQuery.songsQuery()
let predicateByGenre = MPMediaPropertyPredicate(value: "Rock", forProperty: MPMediaItemPropertyGenre)
query.filterPredicates = NSSet(object: predicateByGenre)

此时,音乐应用程序库中包含所有(或一些,如果您过滤)歌曲,因此您可以在设置播放列表队列后使用 MPMusicPlayerController 播放它们:

let mediaCollection = MPMediaItemCollection(items: mediaItems)

let player = MPMusicPlayerController.systemMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)

player.play()

可能有可能以某种方式访问​​歌曲中的元数据(标题、流派、艺术家...)。

这可能不适用于模拟器。

关于iOS + Swift,如何访问所有音乐文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29138285/

相关文章:

iphone - 更改 UITabBar 上的图像

objective-c - initWithContentsOfURL 行为

ios - UIImagePickerController overlayview在预览中倒置

ios - 使用 Swift 将文本字段中的输入打印到 Xcode 中的标签

swift - 为什么不能在初始化器中使用 if let 语法从子类的不可失败初始化器调用可失败初始化器? [ swift ]

ios - 无法在 UIScrollView 中缩放 UIImageView

ios - EXC_BAD_ACCESS 应用程序崩溃 Objective-C 代码 = 1

arrays - 将数组指针传递给另一个类并为将来保留一个引用 - Swift

ios - 谷歌地图 Swift 2 cocoapods

ios - Firebase 使用 Swift 自动更新值