I "essaie d'utiliser le MPMusicPlayerController
pour jouer de la musique, et je veux aussi recevoir la notification MPMusicPlayerControllerPlaybackStateDidChange
j'ai créé mon lecteur et l'enregistrement de notification à peu près comme l'échantillon (qui fonctionne, BTW - il reçoit des notifications correctement).:MPMusicPlayerController n'affiche pas les notifications?
- (id) initWithPlaylist:(MPMediaPlaylist*)list {
if (self = [super init]) {
player = [MPMusicPlayerController applicationMusicPlayer];
[player retain];
NSLog(@"setting up player");
[plaayer setQueueWithItemCollection:list];
[player setShuffleMode:MPMusicShuffleModeOff];
[player setRepeatMode:MPMusicRepeatModeNone];
NSLog(@"registering MPMusicPlayerController Notifications");
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handle_itemChanged:)
name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handle_stateChanged:)
name:MPMusicPlayerControllerPlaybackStateDidChangeNotification
object:nil];
NSLog(@"turning on player notifications");
[player beginGeneratingPlaybackNotifications];
}
}
Je reçois beaucoup de bupkis. Les méthodes handle_itemChanged:
et handle_stateChanged:
sont tout simplement vide, sauf pour une déclaration NSLog
pour montrer qu'ils ont été frappés, et il semble jamais qu'ils sont frappés. Les déclarations contenues dans NSLog
initWithPlaylist:
Les éléments ci-dessus sont juste un objet métier dans mon application. Il ne s'agit pas d'un contrôleur de vue ou de vue
Des idées? La chose bizarre est que l'échantillon AddMusic
fonctionne très bien pour moi, et je ne peux pas dire que je "fais les choses différemment en ce qui concerne la MPMusicPlayerController
et ses notifications
Mise à jour. J'ai ajouté cette ligne dans mon délégué app pour voir l'inondation complète des notifications.
[[NSNotificationCenter defaultCenter] addObserverForName:nil object:nil queue:nil usingBlock:^(NSNotification *n) { NSLog(@"notification: %@", n); }];
Je vois toutes sortes de notifications en cours d'impression à la console, mais aucun du contrôleur de lecteur multimédia
aarrrgggh! C'est bonkers! Je n'arrive toujours pas à comprendre pourquoi les notifications ne sont pas affichées. –