ios - kit - swift play audio from url
Reproducir audio cuando el dispositivo está en modo silencioso-ios swift (4)
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 objetivo c
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryPlayback
error: nil];
En Swift
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
}
catch {
// report for an error
}
Puedes pasar por esto, te ayudará
Cuando utilice las siguientes categorías de sesión 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.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
//Play audio
var error: NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
Swift 3.0 y Xcode> 8
Reproducir sonido en video cuando el dispositivo está en modo RINGER y modo SLIENT
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
//print("AVAudioSession Category Playback OK")
do {
try AVAudioSession.sharedInstance().setActive(true)
//print("AVAudioSession is Active")
} catch _ as NSError {
//print(error.localizedDescription)
}
} catch _ as NSError {
//print(error.localizedDescription)
}
Swift 4
usa esta linea antes de reproducir el video
try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [])