2009-11-26 5 views
0

J'ai un fichier de musique qui fonctionne en arrière-plan (non-stop) lorsque mon application est en cours d'exécution. Ceci est mon exigence. Mais lorsque mon application est en cours d'exécution, l'écran s'éteint selon le réglage du temps de verrouillage automatique, la musique est surmontée. Et puis à nouveau quand on allume l'écran, mon application arrive mais la musique ne démarre pas. Est-ce un bug connu? (ou) Comment obtenir une notification d'écran pour que je puisse rejouer la musique. (ou) comment le résoudre?iPhone: la musique de fond s'arrête lorsque l'écran est éteint et ne continue pas lorsque l'écran est allumé?

J'utiliser ce code pour jouer la musique toujours ... - (void) {PlayLoopMusic

NSString* path; 
NSURL* url; 
path = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"]; 
url = [NSURL fileURLWithPath:path]; 

player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL]; 
[player prepareToPlay]; 
//[player setVolume: 0.50]; 
player.numberOfLoops = -1; 
[player setDelegate: self]; 


[player play]; 

} Merci.

Répondre

2

En plus de la réponse de Morion:

Vous pouvez désactiver le verrouillage automatique de l'écran par l'appel suivant:

[UIApplication sharedApplication].idleTimerDisabled = YES; 

Vous pouvez également vous assurer que la lecture se poursuit pendant que l'écran est verrouillé manuellement. Pour cela, vous devez créer un AudioSession:

AudioSessionInitialize(NULL, NULL, audioInterruptionListener, NULL); 
UInt32 category = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
    sizeof(category), &category); 
AudioSessionSetActive(YES); 

audioInterruptionListener doit être une fonction qui gère les cas lorsque la lecture audio est interrompue (par exemple lors d'un appel entrant). Vous pouvez lire plus à ce sujet here.

Questions connexes