J'aimerais que mon application utilise les boutons audio sur l'écran de verrouillage en mode multitâche. (Oui, comme Pandora.) Quelle API est-ce que je cherche à utiliser?Utilisation de l'écran de verrouillage pour mon application?
Répondre
Voir les docs Remote Control of Multimedia. Fondamentalement, vous avez juste besoin d'appeler -beginReceivingRemoteControlEvents
sur votre instance d'application partagée, puis enregistrez quelque chose (probablement votre contrôleur de vue principal) en tant que premier répondeur et implémentez la méthode -remoteControlReceivedWithEvent:
dessus. Vous obtiendrez des événements à la fois à partir des contrôles de l'écran de verrouillage et du sélecteur de casque, ainsi que les boutons de contrôle à gauche du tiroir multitâche. Pour lire de l'audio pendant que votre application n'est pas au premier plan, vous devriez également vérifier this information sur l'audio de fond.
C'est encore plus facile maintenant, à partir d'iOS 7. Voici l'exemple de la bascule lecture/pause (bouton du casque). Voir les documents pour MPRemoteCommandCenter et MPRemoteCommand pour plus d'options.
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
[commandCenter.togglePlayPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
NSLog(@"toggle button pressed");
return MPRemoteCommandHandlerStatusSuccess;
}];
ou, si vous préférez utiliser une méthode plutôt que d'un bloc:
[commandCenter.togglePlayPauseCommand addTarget:self action:@selector(toggleButtonAction)];
Pour arrêter:
[commandCenter.togglePlayPauseCommand removeTarget:self];
ou:
[commandCenter.togglePlayPauseCommand removeTarget:self action:@selector(toggleButtonAction)];
Vous aurez besoin d'ajouter ceci à la zone d'inclusion de votre fichier:
@import MediaPlayer;