Reproducir audio cuando el dispositivo está en modo silencioso – ios swift

Estoy creando una aplicación usando xcode 7.1, swift. Quiero reproducir un audio. Todo esta bien. Ahora, mi problema, quiero escuchar el sonido cuando el dispositivo está en modo silencioso o silenciado. ¿Cómo puedo hacerlo?

Estoy usando el siguiente código para reproducir audio

currentAudio!.stop() currentAudio = try? AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample_audio", ofType: "mp3")!)); currentAudio!.currentTime = 0 currentAudio!.play(); 

Ponga esta línea antes de llamar al método play () de AVPlayer.

En el objective C

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

En swift

 do { try AVAudioSession.shanetworkingInstance().setCategory(AVAudioSessionCategoryPlayback) } catch { // report for an error } 

Swift 3.0 y Xcode> 8

Reproducir sonido en video cuando el dispositivo está en modo TIMBRE y modo SLIENTE

  do { try AVAudioSession.shanetworkingInstance().setCategory(AVAudioSessionCategoryPlayback) //print("AVAudioSession Category Playback OK") do { try AVAudioSession.shanetworkingInstance().setActive(true) //print("AVAudioSession is Active") } catch _ as NSError { //print(error.localizedDescription) } } catch _ as NSError { //print(error.localizedDescription) } 

Puedes pasar por esto, te ayudará

Cuando utilice las siguientes categorías de session de audio, los sonidos no se silenciarán en iOS: AVAudioSessionCategoryPlayback,AVAudioSessionCategoryRecord,AVAudioSessionCategoryPlayAndRecord

Ejemplo

 func playSound (Sound: String, Type: String) { //Prepare the sound file name & extension var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(Sound, ofType: Type)!) //Preparation to play AVAudioSession.shanetworkingInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil) AVAudioSession.shanetworkingInstance().setActive(true, error: nil) //Play audio var error: NSError? audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error) audioPlayer.prepareToPlay() audioPlayer.play() }