2016-04-13 11 views
1

Wir haben dieses iOS Szenario:Warum spielt AVAudioPlayer nicht?

1) iOS App Pläne lokale Push-Benachrichtigung
2) Drücken ist ein Auslöser AVAudioPlayer Audio-Wiedergabe zu starten - auch wenn das iPhone (App im Hintergrund gesperrt ist)

Nun gibt es zwei Szenarien:

a) Zeitunterschied zwischen Push-Scheduling ist mehr als 3 Stunden: Audio Wiedergabe startet nach dem Entriegeln und starten der App

b) Zeitdifferenz zwischen Druck Scheduling ist weniger als 3 Stunden: Audio auch ohne

zu Entriegeln

Wir wollen Fall b als Standardfall nicht anfangen zu spielen. Stoppt/stoppt iOS unsere Anwendung nach einigen Stunden? Interessant: Auf indischen Geräten scheint es keinen Fall zu geben - auch wenn der Zeitunterschied mehr als 12 Stunden beträgt.

Irgendwelche Ideen? Vielen Dank!

Antwort

0

Sobald didReceiveLocalNotification Methode in AppDelegate ausgelöst, lösen dann ein Verfahren in AppDelegate oder in globalen dann unter Code verwendet Audio-Dateisperre

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@“filename” 
                  ofType:@“type”]; 
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 

player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL 
               error:nil]; 

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 


player.numberOfLoops = -1; //Infinite 

[player prepareToPlay]; 

[player play]; 
mit AVAudioPlayer im Hintergrund oder das Gerät zu spielen