AVSpeechSynthesizer en modo de fondo

Resuelto user_lion asked hace 54 años • 4 respuestas

No puedo hacer que iOS 7 AVSpeechSynthesizerfuncione cuando mi aplicación iOS está en modo de fondo. Agregué la tecla " La aplicación reproduce audio " a los modos de fondo admitidos por la aplicación, pero todavía no puedo hacer que funcione.

También investigué la posibilidad de crear un archivo AVMutableCompositionTrackcon una AVSpeechSynthesizerexpresión y luego, de alguna manera, reproducirlo con un reproductor que pudiera ejecutarse en segundo plano, pero sin suerte.

¿Alguien tuvo más suerte que yo al usarlo AVSpeechSynthesizeren segundo plano?

user_lion avatar Jan 01 '70 08:01 user_lion
Aceptado
  1. Debes configurar "Audio y AirPlay" en modos de fondo.
  2. Tienes que configurar la sesión de audio:
    NSError *error = NULL;
    AVAudioSession *session = [AVAudioSession sharedInstance];
    [session setCategory:AVAudioSessionCategoryPlayback error:&error];
    if(error) {
        // Do some error handling
    }
    [session setActive:YES error:&error];
    if (error) {
        // Do some error handling
    }
imihaly avatar Oct 05 '2013 16:10 imihaly

Para Swift 3, importe AVKit (o AVFoundation) y luego agregue

try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)

para verWillAppear(). Esto permite que el audio se reproduzca independientemente del estado del interruptor de silencio y en segundo plano con la pantalla apagada.

*Editar: AVAudioSession está definido en AVFoundation y también está disponible con AVKit

*Edición 2: captura de pantalla de autocompletar que muestra que AVAudioSession está disponible en AVKit

ingrese la descripción de la imagen aquí

Chris avatar Jan 16 '2017 02:01 Chris