如果在后台创建,iPodMusicPlayer不会发送通知

时间:2010-05-04 18:20:53

标签: iphone multithreading mpmusicplayercontroller

如果在后台创建了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吗?否则,如果它是在主线程上创建的,它会阻止执行一段时间。