swift xcode播放播放器列表中的声音文件

时间:2023-01-13 20:46:31

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!

干杯!