MPMusicPlayerController systemMusicPlayer播放skipToNextItem速度慢,滞后
我使用MPMusicPlayerController systemMusicPlayer播放音乐,但跳过歌曲后,我注意到显着的滞后。
这是我测量的“滞后”,有时更快:
- 1.280796
- 1.210124
- 1.019931
- 1.167739
在跳过几首歌之后,听到声音之前的延迟时间增加了很多。
-(void)viewDidLoad { [[MPMusicPlayerController systemMusicPlayer] setQueueWithQuery:[MPMediaQuery songsQuery]]; [[MPMusicPlayerController systemMusicPlayer] prepareToPlay]; NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; [notificationCenter addObserver:self selector:@selector(handlePlaybackStateChanged:) name:MPMusicPlayerControllerPlaybackStateDidChangeNotification object:nil]; [notificationCenter addObserver:self selector:@selector(handleNowPlayingItemChanged:) name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification object:[MPMusicPlayerController systemMusicPlayer]]; [[MPMusicPlayerController systemMusicPlayer] beginGeneratingPlaybackNotifications]; }
-(IBAction)playBtn:(id)sender { if ([MPMusicPlayerController systemMusicPlayer].playbackState != MPMusicPlaybackStatePlaying) { [[MPMusicPlayerController systemMusicPlayer] play]; } else { [[MPMusicPlayerController systemMusicPlayer] pause]; } } -(void)skipTrack { startTrackChange = [NSDate date]; [[MPMusicPlayerController systemMusicPlayer] skipToNextItem]; } -(void)handleNowPlayingItemChanged:(id)notification { NSLog(@"%f",[startTrackChange timeIntervalSinceNow]); }
这似乎为我工作:
MPMediaQuery *mediaQuery = [MPMediaQuery songsQuery]; // filter out cloud items, cloud items cause delays [mediaQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:@NO forProperty:MPMediaItemPropertyIsCloudItem]];