首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MPMediaItemCollection从特定索引播放MPMusicPlayerController?

如何使用MPMediaItemCollection从特定索引播放MPMusicPlayerController?
EN

Stack Overflow用户
提问于 2014-10-19 06:31:35
回答 2查看 469关注 0票数 1

我的应用程序中有一个播放列表屏幕,用户可以选择播放列表中的任何歌曲,应用程序将从这首歌曲开始播放。

我使用以下代码:

代码语言:javascript
复制
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    MPMediaItem *selectedSong = [currentQueue.items objectAtIndex:indexPath.row];
    [audioCoordinator.musicController setNowPlayingItem: selectedSong];
    [audioCoordinator playAllSound];
}

它适用于所有不同歌曲的播放列表,但是由于这个播放列表允许复制歌曲,所以出现了问题。对于这个播放列表:

  1. 很久以前
  2. 我的十二月
  3. 很久以前

当用户点击第三首歌曲时,应用程序会播放第一首歌曲,因为他们的名字相同,这不是正确的行为。

我们如何为setNowPlayingItem的MPMusicPlayerController函数提供一个索引,以便从那里开始播放?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-19 19:42:41

找到了解决办法:

在函数playAllSound中:

代码语言:javascript
复制
while (self.musicController.indexOfNowPlayingItem != self.currentSongIndex) {
    [self.musicController skipToNextItem];
}

在这里,self.currentSongIndex的值与indexPath.row相同,因为tableViewController的didSelectCell函数中有一个audioCoordinator.currentSongIndex = indexPath.row行。

票数 1
EN

Stack Overflow用户

发布于 2014-10-19 06:56:36

可见,selectedSong的基础是indexPath.row,log indexPath.row您检查了playAllSound --我认为这是shud

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26447965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档