Jouer du son sur iPhone même en mode silencieux

Je veux créer une application qui crée du son, de la musique ou du son système lorsqu’un iPhone est en mode silencieux. Est-il possible de jouer n’importe quel type de son, qu’il s’agisse de sons de musique ou de système, en mode silencieux?

Ce n’est pas souhaitable, mais qui suis-je pour dire que vous ne pouvez pas le faire. Vous pouvez avoir une bonne raison de jouer du son.

Si vous utilisez des sessions audio, incluez alors au début de votre fichier et

 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 

devrait faire le tour. Notez que si vous lisez de la musique ou des sons, la lecture de l’iPod sera interrompue.

Une fois cela fait, probablement quelque part dans l’initialisation d’une de vos classes qui joue les sons, vous pouvez instancier des sons comme ceci:

 // probably an instance variable: AVAudioPlayer *player; NSSsortingng *path = [[NSBundle mainBundle] pathForResource...]; NSURL *url = [NSURL fileURLWithPath:path]; player = [[AVAudioPlayer alloc] initWithContentsOfURL:url]; 

Lorsque cela est fait, vous pouvez jouer avec à tout moment avec:

 [player play]; // Play the sound [player pause]; // Pause the sound halfway through playing player.currentTime += 10 // skip forward 10 seconds player.duration // Get the duration 

Et d’autres belles choses. Recherchez la référence de classe AVAudioPlayer .

Oui, vous pouvez jouer du son lorsque le téléphone est configuré pour vibrer. Utilisez simplement la classe AVAudioPlayer.

Par défaut, la lecture d’un son de session audio ne respectera pas le réglage du commutateur de mute de l’iPhone. En d’autres termes, si vous appelez pour jouer un son et que le commutateur silencieux (matériel) de l’iPhone est réglé sur silencieux, vous entendrez toujours le son.

Voici ce que tu veux. Alors maintenant, vous savez que jouer une session audio lorsque votre téléphone est en mode silencieux continuera à jouer le son, il vous suffit de savoir comment créer une session audio pour lire le son, comme suit : extrait de ce site: http: // iosdevelopertips .com / audio / lecture-sons-courts-audio-services-services.html

 SystemSoundID soundID; NSSsortingng *path = [[NSBundle mainBundle] pathForResource:@"RapidFire" ofType:@"wav"]; AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID); AudioServicesPlaySystemSound (soundID); 

Pour que cela fonctionne, vous devrez importer le fichier d’en-tête et append également AudioToolbox.framework à votre projet.

Et c’est tout.

Donc, à partir de cette réponse, vous savez maintenant que vous pouvez jouer du son lorsque le téléphone est en vibration. Vous n’avez pas besoin de code supplémentaire ou spécial pour vous permettre de faire cette fonctionnalité car elle le fait déjà par défaut.

Pk

Fonctionne sur iOS 6 et supérieur

 NSError *setCategoryErr = nil; NSError *activationErr = nil; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&setCategoryErr]; [[AVAudioSession sharedInstance] setActive:YES error:&activationErr]; 

Et pour Swift 2 et Swift 3

  do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) try AVAudioSession.sharedInstance().setActive(true) } catch { print(error) } 

Il suffit de mettre ceci dans votre viewDidLoad :

 UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); 

Pour lire un son en mode silencieux et même en arrière-plan, essayez ceci:

Mettez ce code dans l’application: didFinishLaunchingWithOpitons:

 [[AVAudioSession sharedInstance] setDelegate:self]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; [[AVAudioSession sharedInstance] setActive:YES error:nil]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 

et ce code dans applicationDidEnterBackground:

 [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 

Configurez également un mode d’arrière-plan de Lecture audio / lecture d’air et incluez l’en-tête AVFoundation.

pour l’objective C, vous pouvez jouer le son du système avec le code suivant:

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; *The system path could be modified.* NSSsortingng *path = @"/System/Library/Audio/UISounds/begin_record.caf"; NSURL *url = [NSURL fileURLWithPath:path]; player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; [player play];