2017-02-11 12 views
1

私はMPMusicPlayerController systemMusicPlayerを使って の音楽を再生していますが、曲をスキップした後には大きな遅れがあります。ここでMPMusicPlayerController systemMusicPlayer play skipToNextItemが遅く遅い

は、時にはそれが高速です、私が測定している私の "遅れ" である。いくつかの曲を飛ばした後

  • 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]); 
} 
+0

もっとテストが..数回スキップした後、音楽は最終的に再生を開始するが、それは、かなりの量を取ります時間。私は、変数、 の量を減らすためにサンプルプロジェクトを作成しているし、まだ問題が解決しない – Wayne

+0

(10秒以上 前にあなたがどんな音を聞く): -0.092157、-0.268869、-0.237229、-0.074643、-0.096063 、 -1.218512、-0.189666、-0.164457 これらの測定値は、音声が実際に聞こえるようになり始めたときに明らかになりません。 IOS10.xでは何かが間違っています。 – Wayne

+0

iPhone6s PlusでIOS Musicアプリをテストしました。アプリケーションを開き、ダウンロードした曲を選択してからすべての曲を選択しました。その後、曲が期待どおりに再生され始めたら、すぐ次のボタンを2回タップします。 何も再生しません。おそらくこれはIOSのバグでしょうか。私はアップルにバグを提出したが、もしそれがどれほどの時間を要するか分からない。 – Wayne

答えて

0

これは私のために働くようだ:

MPMediaQuery *mediaQuery = [MPMediaQuery songsQuery]; 

    // filter out cloud items, cloud items cause delays 
    [mediaQuery addFilterPredicate:[MPMediaPropertyPredicate 
           predicateWithValue:@NO 
             forProperty:MPMediaItemPropertyIsCloudItem]]; 
関連する問題