Sie können NSUserDefaults verwenden, um die Musik zu spielen Status zu speichern, so dass, wenn die Ansicht geladen wird, wird die Musik nur gespielt werden, wenn es nicht schon hat.
if ([[NSUserDefaults standardUserDefaults] stringForKey:@"music"] == nil) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"drums" ofType:@"mp3"];
theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPathath] error:NULL];
theAudio.delegate = self;
theAudio.numberOfLoops = -1;
[theAudio play];
[[NSUserDefaults standardUserDefaults] setObject:@"-" forKey:@"music"]; }
Sie müssen diese Taste beim Beenden der App auf Null zurücksetzen. Andernfalls, wenn der Player die App beendet und beim nächsten Neustart der App die Zeichenfolge @ "music" nicht gleich Null ist.
Zum projectAppDelegate.m Datei:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"music"]; }
Wenn die Musik im ganzen App gespielt wird, setzen Sie dann die Wiedergabe von Musik-Codes, wie unten gezeigt, sicher zu sein. Vergessen Sie nicht, den AVAudioPlayer * theAudio in der Datei projectAppDelegate.h zu deklarieren.
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSString *path = [[NSBundle mainBundle] pathForResource:@"drums" ofType:@"mp3"];
theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPathath] error:NULL];
theAudio.delegate = self;
theAudio.numberOfLoops = -1;
[theAudio play];
[[NSUserDefaults standardUserDefaults] setObject:@"-" forKey:@"music"]; }
Ich könnte hier ein paar Bits verpasst haben. Führen Sie ein paar Tests aus, um es so zu machen, wie Sie es gerne hätten. Ich habe gerade meine App ausprobiert und es hat für mich funktioniert.
Was ist "TheAudio"? –