<分区>
我正在使用 swift 在 iOS 中制作应用程序。我想做的是获取 iPhone 存储中的所有音乐文件,就像 iTunes 一样:我想显示标题、专辑以及播放轨道。
我是 iOS 编程的新手:为了实现我的目标,我应该学习和使用什么 iOS 框架?
提前致谢。
<分区>
我正在使用 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/
相关文章:
objective-c - initWithContentsOfURL 行为
ios - UIImagePickerController overlayview在预览中倒置
ios - 使用 Swift 将文本字段中的输入打印到 Xcode 中的标签
swift - 为什么不能在初始化器中使用 if let 语法从子类的不可失败初始化器调用可失败初始化器? [ swift ]
ios - 无法在 UIScrollView 中缩放 UIImageView
ios - EXC_BAD_ACCESS 应用程序崩溃 Objective-C 代码 = 1