2014-03-24 3 views
0

현재 재생 시간을 알기 위해 다음 코드를 사용하고 있습니다. 하지만 MPMusicPlayerController을 사용하여 노래를 재생할 때 작동하지 않습니다.이 부분을 도와주세요. 어떤 아이디어 나 제안은addObserver forkeypath가 MPMusicPlayerController에서 작동하지 않습니다.

볼커에서 언급 한 바와 같이
MPMediaItemCollection *collection = [[MPMediaItemCollection alloc] initWithItems:[NSArray arrayWithObject:song]]; 
[musicPlayer setQueueWithItemCollection:collection]; 

[musicPlayer prepareToPlay]; 
[musicPlayer setNowPlayingItem:song]; 
//[self.musicPlayer setVolume:volumeSlider.value]; 
[musicPlayer play]; 
+1

가능 currentPlaybackTime를 사용하여 업데이트되지 않습니다 또한 당신이

[musicplayer beginGeneratingPlaybackNotifications] 

와 참고로

[musicplayer endGeneratingPlaybackNotifications] 

전화 확인이 mpmusicplayercontroller에 의해 게시받을 알림은 KVO 방법을 사용하므로 관찰이 이루어지지 않습니다. – Volker

+0

내가 너무 의심스러워서 관련 문서를 찾을 수 없었다 – Tendulkar

답변

2

, 해당 속성이 KVO 호환되지 않는

[self addObserver:self forKeyPath:@"musicPlayer.currentPlaybackTime" options:0 context:nil]; 

노래 재생 코드 매우 감사 할 수 있습니다. 수신 대기중인 nsnotification 이벤트는 여기의 문서를 참조하십시오.

MPMusicPlayerControllerPlaybackStateDidChangeNotification 
MPMusicPlayerControllerNowPlayingItemDidChangeNotification 
MPMusicPlayerControllerPlaybackStateDidChangeNotification 
MPMusicPlayerControllerNowPlayingItemDidChangeNotification 

https://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPMusicPlayerController_ClassReference/Chapters/Reference.html#//apple_ref/occ/instm/MPMusicPlayerController/beginGeneratingPlaybackNotifications

+0

이러한 알림은 백그라운드 모드에서 작동합니까? – Tendulkar