Conecta
Nido Apple
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
audio no regresa despues de una llamad
- preguntó
- Desarrolladores Apple
- 337 Vistas
- 5 Respuestas
- abierta
hola y gracias por permitirme ser parte de este foro
Estoy desarollando mi aplicacion y ya solucione unos problemas que me ayudo un administrador de este foro en un tema anterior.
pero tengo un problema, decidi integrar un audio player para Shoutcast en mi aplicacion y ya he buscado en muchos foros y no encuentro la solucion: el audio no regresa despues de una llamada pero si me llaman y tengo la aplicacion abierta si regresa despues de colgar la llamada.
Aqui les dejo el codigo por si alguien me puede ayudar. saludos
@implementation AppDelegate
@synthesize window;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions
{
sleep(2);
// Override point for customization after application launch.
// ----------- background -----------
// Set AudioSession
NSError *sessionError = nil;
[[AVAudioSessionsharedInstance] setDelegate:self];
[[AVAudioSessionsharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecorderror:&sessionError];
[[AVAudioSessionsharedInstance] setActive:YESerror:&sessionError];
[[AVAudioSessionsharedInstance] setCategory:AVAudioSessionCategoryPlaybackerror:nil];
//[[AVAudioSession sharedInstance] beginBackgroundTaskWithExpirationHandler: ^(void)];
// Pick any one of them
// 1. Overriding the output audio route
//UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
//AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
// 2. Changing the default output audio route
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);
// --------- end Background ----------*/
returnYES;
}
- (void)applicationWillResignActiveUIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)endInterruptionWithFlagsNSUInteger)flags {
// Validate if there are flags available.
if (flags) {
// Validate if the audio session is active and immediately ready to be used.
if (AVAudioSessionInterruptionFlags_ShouldResume) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
// Resume playing the audio.
[[NSNotificationCenterdefaultCenter] postNotificationName: @"willEnterForeground"
object: nil
userInfo: nil];
NSLog(@"interrupt");
});
}
}
}
- (void)applicationDidEnterBackgroundUIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
[[NSNotificationCenterdefaultCenter] postNotificationName: @"didEnterBackground"
object: nil
userInfo: nil];
}
- (void)applicationWillEnterForegroundUIApplication *)application
{
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActiveUIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminateUIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
5 Respuestas
Por favor, accede o regístrate para añadir un comentario.
lo que pasa es que si yo llamo el audio ya no regresa
Solo regresa cuando me llaman
Es medio extraño el problema pero asi me pasa
Por favor, accede o regístrate para añadir un comentario.
Me encontré este código que es similar a lo que estás utilizando, pero viene con un extra, a ver si te ayuda.
BOOL wasPreviouslyInBackground = NO;
- (void)applicationWillResignActive:(UIApplication *)application {
/*
Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
*/
if([SUPMessageClient status] != STATUS_NOT_START)
[SUPMessageClient stop];
wasPreviouslyInBackground = YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
if(wasPreviouslyInBackground)
[SUPMessageClient start];
Ya con un poco más de tiempo veo a detalle cual puede ser el problema y a ver si encuentro una solución para ello.
¿Estas usando storyboards, nibs, lo haces directo o en webviews? Por favor comparte un poco más detalles de como lo estás haciendo.
También te dejo la referencia de Apple para controlar el audio.
Saludos.
Por favor, accede o regístrate para añadir un comentario.
hola Peter Gracias por tu ayuda
Si estoy Usando StoryBoard y fijate que antes usaba .Xib y funcionaba exelete.
los webview los uso para unas galerias, facebook, twitter y youtube.
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 681678
- 1
- Ago 31, 2017
Otras Preguntas y Respuestas
- entre Desarrolladores (Desarrolladores)
Respuestas WordPress (Usuarios WordPress)
Sin Respuesta
-
- 571
- 0
- Jun 16
-
- 752
- 0
- May 8
-
- 785
- 0
- Feb 23
-
- 753
- 0
- Dic 7, 2023
-
- 325
- 0
- Nov 30, 2023
-
- 757
- 0
- Jul 7, 2023
-
- 873
- 0
- Ago 4, 2022
-
- 1030
- 0
- Feb 25, 2022
- ver todas
Actividad Reciente
Peter comentó hace 3 días
No veo las carpetas de Aplicaciones y Descargas en…Itavi respondió Nov 5
No veo las carpetas de Aplicaciones y Descargas en…DaleGarrote comentó Nov 5
IA ese perfecto desconocidoPeter comentó Nov 5
Comando de voz para desplazarse un número variable…Peter respondió Nov 5
No veo las carpetas de Aplicaciones y Descargas en…
Ultimas Respuestas
Peter respondió
Supongo que te refieres a tenerlas en el Dock, por
0Peter respondió
Efectivamente hay cientos o miles de cosas sobre I
1DJUNQUERA respondió
La versión de MacOS Sonoma habilita un comando de
1Peter respondió
Creo que lo mas sencillo es que te pagas en contac
1Peter respondió
Me parece que es un problema de RAM y va a depende
1mozzer respondió
0Peter respondió
Si es por el sistema, ya que requieres macOS Ventu
1Ultimos Comentarios
DaleGarrote comentó
...