2014-10-19 1 views
1

내 앱에 재생 목록 화면이있어서 사용자가 재생 목록에서 원하는 노래를 선택할 수 있으며 해당 노래에서 앱이 재생되기 시작합니다.MPMusicPlayerController를 사용하여 특정 인덱스에서 MPMediaItemCollection을 재생하는 방법은 무엇입니까?

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

그것은 모든 별개의 노래와 재생 목록과 잘 작동하지만,이 재생 목록에 중복 노래를 수 있기 때문에, 여기에 문제가 온다 :

는 다음 코드를 사용합니다. 이 재생 목록 :

  1. 긴 머리 긴 전
  2. 12 월 나의
  3. 사용자가 세번째 노래를 도청 할 때 그들이 가지고 있기 때문에 긴 머리 긴 전

, 응용 프로그램은, 1 곡을 연주 할 이름이 같으면 올바른 동작이 아닙니다.

MPMusicPlayerController의 setNowPlayingItem 함수에서 인덱스를 재생하여 거기에서 재생을 시작할 수있는 방법은 무엇입니까?

답변

1

찾을 해결책 :

기능 playAllSound에서 :

while (self.musicController.indexOfNowPlayingItem != self.currentSongIndex) { 
    [self.musicController skipToNextItem]; 
} 

여기서 self.currentSongIndex는 tableViewController의 didSelectCell 함수에 audioCoordinator.currentSongIndex = indexPath.row 행이 있으므로 indexPath.row와 동일한 값을 갖습니다.

0

이 indexPath.row에 selectedSong 기지, 당신은 playAllSound를 확인 indexPath.row 내가 그것을 플레이 ㄱ shud 생각 로그인 것을 볼 수 있습니다

+0

죄송합니다. 말씀 하시려는 것이 이해가 안되지만 "index.row 로그 및 playAllSound 확인"에서 영감을 얻었습니다. 해결책을 찾았습니다. 감사합니다. –

+0

나는 도청 된 셀을 참조하여 올바른 노래를 선택한다고 말하지만 playAllSound를 사용하고 있습니다. 제 의견으로는 하나의 노래만을 재생하는 playSound입니다. – ZAZ

+0

혼란을 드려 죄송합니다. playAllSound는 하나의 역할을하는 함수입니다 노래지만 노래를 재생할뿐만 아니라 다른 것을 동시에 재생하기 때문에 "AllSong"이라고합니다. –