我的应用程序中有一个播放列表屏幕,用户可以选择播放列表中的任何歌曲,应用程序将从这首歌曲开始播放。
我使用以下代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MPMediaItem *selectedSong = [currentQueue.items objectAtIndex:indexPath.row];
[audioCoordinator.musicController setNowPlayingItem: selectedSong];
[audioCoordinator playAllSound];
}它适用于所有不同歌曲的播放列表,但是由于这个播放列表允许复制歌曲,所以出现了问题。对于这个播放列表:
当用户点击第三首歌曲时,应用程序会播放第一首歌曲,因为他们的名字相同,这不是正确的行为。
我们如何为setNowPlayingItem的MPMusicPlayerController函数提供一个索引,以便从那里开始播放?
发布于 2014-10-19 19:42:41
找到了解决办法:
在函数playAllSound中:
while (self.musicController.indexOfNowPlayingItem != self.currentSongIndex) {
[self.musicController skipToNextItem];
}在这里,self.currentSongIndex的值与indexPath.row相同,因为tableViewController的didSelectCell函数中有一个audioCoordinator.currentSongIndex = indexPath.row行。
发布于 2014-10-19 06:56:36
可见,selectedSong的基础是indexPath.row,log indexPath.row您检查了playAllSound --我认为这是shud
https://stackoverflow.com/questions/26447965
复制相似问题