I am looking for a swift coding playing sound out of the player list and not sounds added as resource to your project. I mainly found the usage of NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sound_name", ofType: "wav")) println(alertSound) but for this you need to have the sound file in your bundle. But I couldn't find any example selecting audio files bought thru itunes and play them.
我正在寻找从播放器列表中播放声音的快速编码,而不是作为资源添加到项目中的声音。我主要发现NSURL的使用(fileURLWithPath:NSBundle.mainBundle()。pathForResource(“sound_name”,ofType:“wav”))println(alertSound)但是为此你需要在你的包中有声音文件。但我找不到任何选择通过itunes购买的音频文件并播放它们的例子。
Any idea how to do this? Can I access my music layer playlist files and using them in my app?
知道怎么做吗?我可以访问我的音乐图层播放列表文件并在我的应用中使用它们吗?
Thanks for any code lines. rpw
感谢您的任何代码行。 RPW
1 个解决方案
#1
10
These music files are represented by MPMediaItem instances. To fetch them, you could use an MPMediaQuery, as follows:
这些音乐文件由MPMediaItem实例表示。要获取它们,您可以使用MPMediaQuery,如下所示:
let mediaItems = MPMediaQuery.songsQuery().items
At this point, you have all songs included in Music App Library, so you can play them with a MPMusicPlayerController after setting a playlist queue:
此时,您已将所有歌曲都包含在音乐应用程序库中,因此您可以在设置播放列表队列后使用MPMusicPlayerController播放它们:
let mediaCollection = MPMediaItemCollection(items: mediaItems)
let player = MPMusicPlayerController.iPodMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)
player.play()
You might need to filter songs by genre, artist, album and so on. In that case, you should apply a predicate to the query before fetching the media items:
您可能需要按流派,艺术家,专辑等过滤歌曲。在这种情况下,您应该在获取媒体项之前将谓词应用于查询:
var query = MPMediaQuery.songsQuery()
let predicateByGenre = MPMediaPropertyPredicate(value: "Rock", forProperty: MPMediaItemPropertyGenre)
query.filterPredicates = NSSet(object: predicateByGenre)
let mediaCollection = MPMediaItemCollection(items: query.items)
let player = MPMusicPlayerController.iPodMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)
player.play()
Cheers!
干杯!
#1
10
These music files are represented by MPMediaItem instances. To fetch them, you could use an MPMediaQuery, as follows:
这些音乐文件由MPMediaItem实例表示。要获取它们,您可以使用MPMediaQuery,如下所示:
let mediaItems = MPMediaQuery.songsQuery().items
At this point, you have all songs included in Music App Library, so you can play them with a MPMusicPlayerController after setting a playlist queue:
此时,您已将所有歌曲都包含在音乐应用程序库中,因此您可以在设置播放列表队列后使用MPMusicPlayerController播放它们:
let mediaCollection = MPMediaItemCollection(items: mediaItems)
let player = MPMusicPlayerController.iPodMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)
player.play()
You might need to filter songs by genre, artist, album and so on. In that case, you should apply a predicate to the query before fetching the media items:
您可能需要按流派,艺术家,专辑等过滤歌曲。在这种情况下,您应该在获取媒体项之前将谓词应用于查询:
var query = MPMediaQuery.songsQuery()
let predicateByGenre = MPMediaPropertyPredicate(value: "Rock", forProperty: MPMediaItemPropertyGenre)
query.filterPredicates = NSSet(object: predicateByGenre)
let mediaCollection = MPMediaItemCollection(items: query.items)
let player = MPMusicPlayerController.iPodMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)
player.play()
Cheers!
干杯!