2015-05-25 10 views
7

Ich habe eine Anwendung, die Video mit AVPlayer und AVPlayerLayer spielt. In meiner app, ich bin in der Lage Audio zu spielen, wenn die Anwendung, indem die player Eigenschaft meines AVPlayerLayer-nil, wenn die Anwendung den Hintergrund tritt gesperrt,Wie kann ich den AVPlayerLayer `setPlayer` Audio-Blip vermeiden?

-(void)appEnteredBackgroundNotification:(NSNotification *)notification { 

    [[self playerLayer] setPlayer:nil]; 

} 

Allerdings, wenn ich dies tun, der Ton wird Lag/Blip für ca. 0,5 Sekunden. Das klingt wirklich sehr schlecht für den Endbenutzer. Das Gleiche gilt für den Fall, dass die App in den Vordergrund wechselt und ich die Eigenschaft player erneut festlege.

Wie kann ich diesen Audio-Blip vermeiden? Als Test habe ich versucht, den Player in einem Hintergrund Thread ohne Erfolg zu entfernen.

Update: Ich sprach mit einem Apple-Ingenieur auf der WWDC und sie sagten, dass dieses Problem ein Bug an ihrem Ende ist (bisher nicht in iOS 9 behoben) und dieser Ansatz ist der richtige Ansatz. Großartig ...

+0

dasselbe Problem in iOS 9.2. eigentlich in 9.2, scheint es für mich auf meinem iPhone 6s schlimmer geworden zu sein als IOS 9.0. Hast du schon eine Lösung? –

+0

@PranoyC Keine Lösung, leider. –

+0

es hängt auch irgendwie von der Hardware des Geräts, denke ich. – zakhej

Antwort

-1

Ich denke, Sie können nicht pause vor der Einstellung auf nil anrufen und umgekehrt. Und versuchen Sie prepare vor play.

+0

Danke für die Antwort. Mein Ziel ist es, dass die Musik ohne Unterbrechung in den Hintergrund tritt, also habe ich den Ton pausiert, den Player der Player-Ebene entfernt und ihn dann pausiert. Leider sieht es so aus, als wäre der selbe Blip vorhanden. –

+0

Das ist wirklich einfach, Sie müssen eine AVSession erstellen und Media Center-Methoden implementieren. (Y) – khunshan