2016-04-05 5 views
1

Ich möchte in der Lage sein, zwei Songs aus meiner Musikbibliothek auszuwählen und den Picker zu schließen, nachdem ich die Songs ausgewählt habe. Im Moment muss ich die Fertig-Taste drücken, um sie zu schließen. Wie könnte ich das tun?Wie kann ich den Medienwähler nach Auswahl von zwei Titeln schließen?

//MEDIAPLAYER--------------------------------------------------------------- 
func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) { 

if mediaItemCollection.items.count > 1 { 
let aMediaItem = mediaItemCollection.items[0] as MPMediaItem 
music = aMediaItem 
NSLog("\(aMediaItem.title)selected") 

let url: NSURL = (music.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)! 

    do { 
     musicPlayer = try AVAudioPlayer(contentsOfURL: url) 
    } catch { 
     return 
} 
} 

if mediaItemCollection.items.count > 1 { 

    let aMediaItem2 = mediaItemCollection.items[1] as MPMediaItem 
    music2 = aMediaItem2 
    NSLog("\(aMediaItem2.title)selected") 
    let url2: NSURL = (music2.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)! 

    do { 
     musicPlayer2 = try AVAudioPlayer(contentsOfURL: url2) 


    } catch { 

     return 
    } 
    } 
} 
+0

manuell gedrückt wird warum nicht eine Zählung in die 'didPickMediaItems', wenn die Zählung es 2 den Controller entlassen, wie Sie von der Schaltfläche fertig tun? – HardikDG

+0

Ich habe nicht gezählt für die Schaltfläche fertig. – coding22

+0

Ja, ich weiß, können Sie Ihren fertigen Tastencode in den oben gezeigten Beispielcode eingeben? – HardikDG

Antwort

1

aktualisieren: MPMediaPickerController bieten keine Standardmethode, mit der Sie direkt mit dem Controller auf der Grundlage Ihrer Anforderung

Für die Anpassung in der Song-Auswahl in der Nähe können Sie MPMediaQuery und MPMediaItem verwenden können, denen Geben Sie den Song-Eintrag mit Details zurück. Sie können das in Ihrem UITableView/UICollectionView zeigen und Ihre customize Logik


Alter Code implementieren: Dies kann nur verwendet werden, wenn Sie einige Verarbeitung nach getan tun wollen

func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) { 
     //rest of your code 
     if mediaItemCollection.items.count == 2 { 
      self.dismissViewControllerAnimated(true, completion:nil) 
     } 
     //rest of your code 
    } 
+0

Ich habe das versucht und es wird nicht von alleine entlassen, nachdem ich zwei Songs ausgewählt habe. Ich muss immer noch die Fertig-Taste drücken. – coding22

+0

@ coding22, wie haben Sie den MPMediaPickerController gezeigt? self.presentViewController? – HardikDG

+0

Ich bin in SpriteKit, also musste ich self.view.window.rootviewcontroller.presentvieecontroller verwenden – coding22