Ceci est une question ancienne, mais l'autre réponse ne m'a pas aidé ... Cependant, j'ai trouvé une solution que je posterai pour référence ultérieure au cas où quelqu'un (ou moi du futur!) en a besoin.
La solution est décrite dans le billet de blog suivant: iOS: Force audio output to speakers while headphones are plugged in.
Vous devez créer une nouvelle classe Objective-C AudioRouter dans votre projet. Importez ensuite AudioRouter.h
dans votre fichier d'en-tête de la classe dans laquelle vous lancez la fonctionnalité audio. Ensuite, dans le fichier correspondant .m
ajouter les lignes suivantes au sein de la méthode viewDidLoad
: sortie
AudioRouter *foobar = [[AudioRouter alloc] init];
[foobar initAudioSessionRouting];
[foobar forceOutputToBuiltInSpeakers];
Maintenant, vous avez audio (par exemple AVAudioPlayer) forcé de haut-parleur! Notez que si vous branchez des écouteurs alors que l'application est en cours d'exécution, alors toute la sortie audio est dirigée vers les écouteurs.
Est-ce que ce travail avec AVAudioPlayer ou seulement AudioServices? –
Une note pour les autres personnes qui rencontrent cette réponse: les deux premières lignes de l'exemple de code ne sont pas pertinentes - et si vous êtes comme l'OP (qui enregistre aussi l'audio), ces lignes empêcheront l'enregistrement de fonctionner correctement. – Steve
Cela a fonctionné pour moi avec un ajustement: j'ai changé sessionCategory pour être kAudioSessionCategory_PlayAndRecord. – Jacob