Question

J'utilise la classe AVAudioPlayer pour jouer les fichiers .mp3 dans mon application. Est-il possible de vérifier si les écouteurs sont connectés au dispositif programme?

Dans la première génération d'appareils iPod, la barre de contrôle du volume est caché (pour la musique et des vidéos) lorsqu'aucune écouteurs sont connectés.

Était-ce utile?

La solution

Vous pouvez obtenir la « route » audio en cours en appelant AudioSessionGetProperty avec la propriété kAudioSessionProperty_AudioRoute. Cela vous donne une chaîne telle que « casque » ou « Président ».

Vous pouvez également utiliser AudioSessionAddPropertyListener pour écouter quand les changements d'itinéraire (par exemple. Débrancher le casque)

Voir la documentation de pomme ici

Autres conseils

AudioSessionGetProperty et AudioSessionAddPropertyListener sont dépréciées dans iOS 7.

Au lieu, utilisez: AVAudioSessionRouteChangeNotification

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleRouteChange:) name:AVAudioSessionRouteChangeNotification object:nil];

Listener,

-(void)handleRouteChange:(NSNotification*)notification 
{
    NSInteger reason = [[[notification userInfo] objectForKey:AVAudioSessionRouteChangeReasonKey] integerValue];
    switch (reason) {
        case AVAudioSessionRouteChangeReasonOldDeviceUnavailable :
            break;
        case AVAudioSessionRouteChangeReasonNewDeviceAvailable :
            break;
        case AVAudioSessionRouteChangeReasonOverride :
            break;
        case AVAudioSessionRouteChangeReasonCategoryChange :
            break;
        case AVAudioSessionRouteChangeReasonWakeFromSleep :
            break;
        case AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory :
            break;
        case AVAudioSessionRouteChangeReasonRouteConfigurationChange :
            break;
        case AVAudioSessionRouteChangeReasonUnknown:
        default:
            break;
    }
}

Il existe deux approches:

1) vérifier l'état instantané de l'itinéraire audio

détecter si un casque (non microphone) sont branchés à un dispositif iOS

Cette réponse vous fournit une méthode prête pour détecter si le casque est branché.

2) de suivre les événements de changement d'itinéraire, et définir un indicateur à chaque changement d'itinéraire entre le casque et le casque d'écoute non-

Comment détecter programme écouteur iPhone?

(voudrait probablement ajouter le code du premier lien dans ce fait pour déterminer si le casque / statut de non-casque a été changé dans le changement d'itinéraire rappel)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top