使用 Swift 在 iOS 媒体播放器上跳至索引编号的项目...
skip to item of index number... on iOS Media Player with Swift
我想使用项目的索引号(您可以使用 playlist.indexOfNowPlayingItem 找到)跳到另一首歌曲。有没有一种简单的方法可以使用像 mediaplayer.skipToNextItem 这样的函数来做到这一点但设置索引号(例如 mediaplayer.skipToItem(4) 如果我想跳到我的播放列表的第四个项目)?
如果你查看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]
解决方案是,创建一个集合 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]
注意:我在这里找到了答案:
我想使用项目的索引号(您可以使用 playlist.indexOfNowPlayingItem 找到)跳到另一首歌曲。有没有一种简单的方法可以使用像 mediaplayer.skipToNextItem 这样的函数来做到这一点但设置索引号(例如 mediaplayer.skipToItem(4) 如果我想跳到我的播放列表的第四个项目)?
如果你查看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]
解决方案是,创建一个集合 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]
注意:我在这里找到了答案: