2012-02-22 4 views
0

을 재생하는 이 아닌 AVPlayer에 문제가 있습니다.AVPlayer가 백그라운드에서 스트리밍 트랙을 전달하지 않습니다.

여기에 세부 사항을이다 :

내가 AVPlayer를 객체와있는 NSMutableArray에 저장된 링크에서 음악을 스트리밍하는 내보기 컨트롤러의 인스턴스 변수로 AVPlayerItem, linkArray 있습니다.

musicPlayerItem = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:[linkArray objectAtIndex:indexPath.row]]]; 
player = [[AVPlayer alloc] initWithPlayerItem:musicPlayerItem]; 

을 ... 그리고 완벽하게 재생 : 사용자가 jQuery과의 트랙을 트랙을 탭하면, 두 개체는과 같이 인스턴스화된다. 앱이 활성 인 인 동안 트랙이 끝날 때마다 정상적으로 건너 뛰거나 앱을 수동으로 실행하여 트랙을 건너 뛸 수 있습니다 (활성 또는 배경 여부). 그러나 앱이 백그라운드에있을 때 (기기가 잠긴 경우 포함) 건너 뛰면 다음 트랙을 재생하지 않습니다.

따라서 다음 트랙으로 건너 뛰지 만 재생하지는 않습니다. 앱을 다시 활성화하거나 재생을 호출해야합니다 (헤드폰 컨트롤이나 시스템 전체의 음악 컨트롤을 통해).

 if (nowPlaying == [linkArray count]-1) { 
      nowPlaying = 0; 
      musicPlayerItem = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:[linkArray objectAtIndex:0]]]; 
      player = [[AVPlayer alloc] initWithPlayerItem:musicPlayerItem]; 
     } else { 
      NSLog(@"NowPlaying (before increment: %i", nowPlaying); 
      //If not, increment nowPlaying by one and play 
      nowPlaying++; 
      NSLog(@"NowPlaying (after increment: %i", nowPlaying); 
      musicPlayerItem = [[AVPlayerItem alloc] initWithURL:[NSURL URLWithString:[linkArray objectAtIndex:nowPlaying]]]; 
      player = [[AVPlayer alloc] initWithPlayerItem:musicPlayerItem]; 
    } 

정말 사람이

답변

관련 문제