简体   繁体   English

MPMusicPlayerController的setNowPlayingItem在SWIFT中不起作用

[英]MPMusicPlayerController's setNowPlayingItem doesn't work in SWIFT

I am creating a music player to play the selected item when a user taps on the tableview cell using MPMusicPlayerController's setNowPlayingItem. 我正在创建一个音乐播放器,以便当用户使用MPMusicPlayerController的setNowPlayingItem轻击表格视图单元时播放选定的项目。 The following code works well in Objective C, But when I tried to convert this into swift it doesn't works. 以下代码在Objective C中效果很好,但是当我尝试将其转换为swift时不起作用。 Can anybody suggest what is the equivalent for the following code in SWIFT ? 有人可以建议SWIFT中以下代码的等效形式是什么吗?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MPMediaItem *song = self.songs[indexPath.row];
    [self.musicPlayer setNowPlayingItem:song];
    [self.musicPlayer play];
}

Found the solution 找到了解决方案

    var mySongs = [MPMediaItemCollection]()
    var songsQry = MPMediaQuery.songsQuery()
    songsQry.groupingType = MPMediaGrouping.Title
    mySongs = songsQry.collections as [MPMediaItemCollection]
    var playQueue = MPMediaItemCollection(items: mySongs)


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
        var currentSong: MPMediaItem
        currentSong = songs[indexPath.row].representativeItem
        let musicPlayer = MPMusicPlayerController.systemMusicPlayer()
        musicPlayer.setQueueWithItemCollection(playQueue)
        musicPlayer.nowPlayingItem = currentSong
        musicPlayer.play()
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM