2

iPodMusicPlayerがバックグラウンドで作成されている場合、再生状態の変更に関する通知は送信されません。

コードは次のとおりです。

- (void)initMusicPlayer {
    musicPlayer = [MPMusicPlayerController iPodMusicPlayer];

    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
    [notificationCenter addObserver:self selector:@selector(musicPlayerStateChanged:) 
            name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification 
            object:musicPlayer];
    [notificationCenter addObserver:self selector:@selector(musicPlayerStateChanged:) 
            name:MPMusicPlayerControllerPlaybackStateDidChangeNotification 
            object:musicPlayer];
    [musicPlayer beginGeneratingPlaybackNotifications];
}

- (void)viewDidLoad {
    [self performSelectorInBackground:@selector(initMusicPlayer) withObject:nil];
}

バックグラウンドでiPodMusicPlayerを作成する方法はありますか?それ以外の場合、メインスレッドで作成されると、しばらくの間実行がブロックされます。

4

1 に答える 1

2

メインスレッドでは音楽プレーヤーを使用する必要があります。

https://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/Reference/Reference.html%23//apple_ref/doc/uid/TP40008221

于 2011-05-03T20:51:07.317 に答える