2016-04-05 6 views
0

Ich habe den folgenden Code festgelegt, der jedes Mal ausgeführt wird, wenn eine bestimmte Taste gedrückt wird. Für die ersten paar Songs rollt nun PlayingInt um 1, springt dann von 7 auf 10, rollt dann jedes Mal um 3, springt dann von 13 auf 17 und beginnt jedes Mal um 4 zu rollen. Irgendwelche Gedanken darüber, wie oder warum nowPlayingInt kann um mehr als nur 1 variieren, wenn der musicPlayer durch die Songs geht?nowplayingItem + 1 spielt nicht immer den nächsten Song

let nowPlayingInt = delegate.queryAsCollection!.items.indexOf(delegate.musicPlayer.nowPlayingItem!) 
    print("nowPlayingInt number is \(nowPlayingInt)") 
    delegate.musicPlayer.nowPlayingItem = delegate.queryAsCollection!.items[nowPlayingInt! + 1] 

Ich bin mir bewusst, dass ich .skipToNextItem verwenden könnte, aber das ist nicht das, was ich versuche nicht, helfen Sie mir zu tun und würde, wenn ich mehr als 1 Song überspringen wollte.

AppDelegate enthält:

let musicPlayer = MPMusicPlayerController.systemMusicPlayer()  
var queryAsCollection : MPMediaItemCollection? 
var collectionForNextUps = MPMediaQuery() 
+0

Können Sie den Code für Ihre Delegat-Implementierung freigeben? – kye

+0

@kye Ich habe den Code aktualisiert, so dass beide Zeilen queryAsCollection verwenden. Ich habe auch den AppDelegate Inhalt hinzugefügt ... – rocketman240

Antwort

0

ich indexofNowPlayingItem bekam, wie gewünscht zu arbeiten. Immer noch nicht sicher, warum die Zeile mit indexOf nicht den Trick gemacht hat, aber ich dachte, ich würde die Antwort für mindestens einen Schuss auf Vollständigkeit posten.

let nowPlayingInt = delegate.musicPlayer.indexOfNowPlayingItem 
    print("nowPlayingInt number is \(nowPlayingInt) 1 ") 
    delegate.musicPlayer.nowPlayingItem = delegate.queryAsCollection!.items[nowPlayingInt + 1] 
Verwandte Themen