【问题标题】:Play all songs in music播放音乐中的所有歌曲
【发布时间】:2017-02-05 03:11:24
【问题描述】:

我有这段代码可以播放音乐库中的所有歌曲(通过 iTunes 添加并从 Apple Music 下载到库中)。 我不能只有歌曲。我做错了什么?

-(IBAction)playAllSongs:(id)sender {

  MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
  NSArray *songsArray = [songsQuery collections];

  MPMediaItemCollection *items =  [MPMediaItemCollection collectionWithItems:songsArray];
  MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
  [musicPlayer setQueueWithItemCollection:items]; 
}

【问题讨论】:

  • 你有没有遇到什么问题只是清除你的问题..?
  • 我的代码返回所有媒体项目(pdf、epub、视频、歌曲等),但不仅仅是歌曲。
  • 显示你的数组,你得到什么数据..
  • 我在控制台中有 4 首歌曲(没错)'MyApp[338:25524] ("", "", "" , "" )' 但不在应用程序中。您是否有解决方案或提示?
  • 当这一切表明我们期待答案时...键盘现象!

标签: ios objective-c mpmediaitemcollection


【解决方案1】:

上述答案有效,但这是一种迂回的方式。 更简单的方法:

MPMediaQuery *songs = [MPMediaQuery songsQuery];
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
[musicPlayer setQueueWithQuery:songs]

【讨论】:

    【解决方案2】:

    我解决了自己的问题

    MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
    NSArray *songsArray = [songsQuery items];
    
    MPMediaItemCollection *items =  [MPMediaItemCollection collectionWithItems:songsArray];
    MPMusicPlayerController *musicPlayer = [MPMusicPlayerController systemMusicPlayer];
    
    //[songsQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithBool:NO] forProperty:MPMediaItemPropertyIsCloudItem]]; // for iTunes Match or Apple music to exclude or not songs not in the device
    
    [musicPlayer setQueueWithItemCollection:items];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2018-12-14
      相关资源
      最近更新 更多