iOS + Swift,如何访问所有音乐文件 [关闭]

Posted

技术标签:

【中文标题】iOS + Swift,如何访问所有音乐文件 [关闭]【英文标题】:iOS + Swift, How to access all music files [closed] 【发布时间】:2015-03-19 06:16:03 【问题描述】:

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

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

提前致谢。

【问题讨论】:

不,您无法访问在 iTunes 中看到的音乐;但是您可以访问存储在应用程序文件夹中的音乐。 什么意思,我们无法访问 iTunes 中的音乐? 我要做的是获取我目录中的所有音乐文件,这样我就可以在我的应用程序上播放音乐标题、音乐专辑和音乐。 【参考方案1】:

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

您正在寻找一种音乐播放器应用程序?您想添加自己的音乐 (A) 或使用用户在其Music App Library (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()

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

这可能不适用于模拟器。

【讨论】:

我想要的是使用/获取存储在用户 iPhone 设备上的所有音乐文件,或者我们可以说用户 iTunes 上列出的音乐。上述方法是否可以按我的意愿工作?跨度> 感谢您的回复,这非常有帮助。不过,我正在按照code.tutsplus.com/tutorials/… 的步骤进行操作 谢谢。注意:请改用 systemMusicPlayer(),因为 iPodMusicPlayer() 在 iOS 8 中已弃用。

以上是关于iOS + Swift,如何访问所有音乐文件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何保存StorageFile以便以后使用?

如何使用 Swift 3 iOS10 为 MPMediaPickerControllerDelegate 呈现带有视图控制器的音乐库?

iOS如何播放在文件夹里面存放的音乐呢?

iOS,swift:无延迟播放背景音乐和音效

如何让音乐开/关设置objective-c

我可以在 xcode 的不同文件夹中使用相同的文件名以及如何在 ios Swift 语言中访问它