使用Swift跳转到iOS Media Player上的索引编号项目

时间:2015-09-08 08:35:06

标签: ios swift media-player

我想使用项目的索引编号跳过另一首歌曲(可以使用playlist.indexOfNowPlayingItem找到)。有没有一种简单的方法可以使用像mediaplayer.skipToNextItem这样的函数来设置索引号(例如,如果我想跳到我的播放列表的第四项,则为mediaplayer.skipToItem(4))?

2 个答案:

答案 0 :(得分:0)

如果您查看Apple的documentation,您会发现只有跳过下一个,开始和上一个项目的方法。然而,有一个属性nowPlayingItem使我们能够获得当前曲目,或设置曲目播放,问题是你是如何设置当前歌曲队列...

让我们假设您正在使用:

<强> 1。媒体项目集合:

var songs = [song1, song2]
var player = MPMusicPlayerController.applicationMusicPlayer()
var collection = MPMediaItemCollection(items: songs)

player.setQueueWithItemCollection(collection)

所以要设置新歌,我们就这样做:

player.nowPlayingItem = song2 (it must be already in our collection)

或者如果你想使用索引号,因为我们的歌曲是数组,我们也可以这样做:

player.nowPlayingItem = songs[1]

<强> 2。媒体查询

var query = MPMediaQuery.songsQuery() // query of songs sorted by name
var songs = query.items as NSarray
var player = MPMusicPlayerController.applicationMusicPlayer()

player.setQueueWithQuery(query)

现在要设置新歌,我们就这样做:

player.nowPlayingItem = songs[1]

答案 1 :(得分:0)

解决方法是,创建一个集合MPMediaItemCollection,设置要播放的歌曲:player.nowPlayingItem = collection.items[1]

例如:

var query = MPMediaQuery.songsQuery()
var collection = MPMediaItemCollection(items: query.items!) //it needs the "!"
let player = MPMusicPlayerController.applicationMusicPlayer()

player.setQueueWithItemCollection(collection)

player.nowPlayingItem = collection.items[1]

注意:如果答案如下:Play Song at specific index of MPMediaItemCollection in Swift