我如何在 select 两首歌曲后关闭媒体选择器?

How can I dismiss the media picker after I select two songs?

我希望能够从我的音乐库中挑选两首歌曲,然后在我 select 歌曲之后关闭选择器。现在我必须按下完成按钮将其关闭。我怎样才能做到这一点?

//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
    }
    }
}

更新: MPMediaPickerController 不提供任何默认方法,您可以根据需要直接关闭控制器

要在歌曲选择中进行自定义,您可以使用 MPMediaQueryMPMediaItem,这将 return 您列出带有详细信息的歌曲。你可以在你的 UITableView/UICollectionView 中展示它并实现你的自定义逻辑


旧代码: 只有在手动按下 done 后你想做一些处理时才可以使用这个

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
    }