iphone - profesional - grabación de audio en segundo plano en iOS
grabar audio profesional iphone (3)
Tengo una aplicación que usa servicios de ubicación en segundo plano. Funciona bien. Pero lo que quiero hacer, en cierto punto, es verificar algunos niveles de audio mientras la aplicación está en segundo plano. Por alguna razón, parece que no funciona. Cuando se ejecuta en primer plano, la función funciona bien, pero cuando está en segundo plano, la entrada promedio y máxima del grabador de audio es siempre -120.
Esto es lo que utilizo para hacer el truco (eso no parece funcionar aparentemente ...)
....
[recorder record];
if (levelTimer == nil) {
bgTask = 0;
app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.02 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
}
...
Y sí, el levelTimerCallback
se llama cada 0.02 segundos, incluso cuando está en segundo plano, así que supongo que el beginBackgroundTaskWithExpirationHandler
funciona bien.
¿Alguna idea o algunos consejos?
Actualmente, la única forma admitida de grabar en segundo plano en un dispositivo iOS es incluir audio para la clave UIBackgroundModes en la lista de la aplicación, habilitar una sesión de audio adecuada para la grabación y comenzar a grabar (o reproducir) audio antes de que la aplicación entre en el fondo.
Si la aplicación utiliza las colas de audio o la API de la unidad de audio RemoteIO para grabar, las devoluciones de llamada del búfer pueden descartar todos los búferes de audio hasta el momento de interés, y luego calcular la energía representada por las muestras de PCM durante el tiempo requerido cuando necesario.
Hay una aplicación que conozco que tiene grabación de fondo. Beatmaker 2. Debes activar la ejecución en segundo plano en la configuración del dispositivo en Beatmaker 2. En BeatMate, crea una pista de audio y comienza a grabar. Ellos usan el botón de inicio en el dispositivo para salir de la aplicación pero aún está grabando. También puede ser creativo con diferentes interfaces. Hago esto para alimentar la línea del iPhone 4 en una pista de audio en BeatMate 2. Puede grabar el audio de todo lo que se reproduce en primer plano. (YouTube videos aplicaciones música desde su biblioteca de iTunes. Puede editar las ondas también después de grabarlas.
No creo que iPhone permita la grabación en segundo plano. Solo unos pocos servicios están permitidos cuando la aplicación entra en segundo plano. Lógicamente, si su aplicación permanece en el fondo durante mucho tiempo, entonces consumiría una gran cantidad de batería y un búfer para almacenar el audio, a menos que tenga tiempo y memoria para administrar estos recursos. Esto también plantearía problemas para su aplicación cuando la envíe a la App Store.
Aunque puede consultar este enlace para saber qué se puede ejecutar en segundo plano. Espero que esto te ayude a aclarar las cosas de una manera.
iPhone: servicios en ejecución en segundo plano
¡¡¡Buena suerte!!!