Je suis en train d'essayer de définir l'arrière-plan audio pour une application que je suis en développement pour iOS 4. L'application ne dispose pas d'un lecteur de musique dédié viewController
, cependant, contrairement à d'autres applications audio telles que Pandora, ce qui rend la tâche un peu plus de confusion.
J'ai mis l'appropriées Info.plist
paramètres correctement et avoir un AVAudioPlayer
objet dans mon délégué d'application qui est accessible de partout. Lorsque l'utilisateur joue un morceau, j'ai remplacer l' AVAudioPlayer
avec un nouveau initialisé avec la chanson et de la jouer. Tout cela fonctionne très bien, sauf que maintenant je n'ai aucune idée de la façon d'aller sur l'appui de contrôle à distance des événements.
Basé sur la documentation d'Apple, j'ai ceci:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
switch(event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
if([iPhoneAppDelegate backgroundAudioPlayer].playing)
[iPhoneAppDelegate pauseBackgroundAudioPlayer];
else
[iPhoneAppDelegate playBackgroundAudioPlayer];
break;
}
}
La chose est, où dois-je placer ce? La documentation d'Apple semble suggérer que cela devrait aller, dans certains view controller quelque part, mais mon application a beaucoup de vue, les contrôleurs et les contrôleurs de la navigation. Où que j'essaie de mettre ce, pour quelque raison appuyant sur l'onglet bouton lecture/Pause dans le plateau multi-tâches de commandes à distance, soit à cause de la chanson juste une pause pour un moment, puis reprendre, ou en quelque sorte causes de la chanson à jouer deux fois.