realizar los siguientes cambios en la configuración del proyecto Xcode, así como en el código.
paso 1) Seleccione su archivo de proyecto en el navegador de Xcode. Luego, desde la sección de Capacidades, enciende la subsección Modos de fondo. Una vez que se le haya asignado la lista de modos de fondo, marque el interruptor Audio & Airplay.
stp 2) Utilice el siguiente código rápido, básicamente debe configurar la sesión de audio para su aplicación.
var audioPlayer : AVAudioPlayer!
@IBAction func playButtonClicked(sender : AnyObject){
let dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(dispatchQueue, {
if let data = NSData(contentsOfFile: self.audioFilePath())
{
do{
let session = AVAudioSession.sharedInstance()
try session.setCategory(AVAudioSessionCategoryPlayback)
try session.setActive(true)
self.audioPlayer = try AVAudioPlayer(data: data)
//self.audioPlayer.delegate = self
self.audioPlayer.prepareToPlay()
self.audioPlayer.play()
}
catch{
print("\(error)")
}
}
});
}
func audioFilePath() -> String{
let filePath = NSBundle.mainBundle().pathForResource("mySong", ofType: "mp3")!
return filePath
}
Esta sesión de reproducción de audio se juega la reproducción de la aplicación, incluso si la aplicación está en segundo plano o el teléfono está en modo silencioso o el dispositivo está bloqueado.
Hola Danich y muchas gracias por su respuesta. ¿Hay alguna manera de cambiarlo en el tiempo de ejecución? – gluon
Abrí otro hilo para este punto en particular: http://stackoverflow.com/questions/10504432/how-can-we-handle-enable-disable-background-audio-abilities-at-runtime-on-ios-de – gluon
Lo siento, no noté su pregunta sobre habilitar/deshabilitar. Creo que un hilo nuevo no es una buena idea. Actualizado mi respuesta. Acepta, si crees que es útil. – DanSkeel