2015-05-25 5 views
7

Ho un'applicazione che riproduce video utilizzando AVPlayer e AVPlayerLayer. Nella mia app, sono in grado di riprodurre l'audio quando l'applicazione è bloccata impostando la proprietà player della mia AVPlayerLayer-nil quando l'applicazione entra nel fondo:Come evitare il bip audio di `SetPlayer` di AVPlayerLayer?

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

    [[self playerLayer] setPlayer:nil]; 

} 

Tuttavia, quando faccio questo, l'audio lag/blip per circa 0,5 secondi. Questo suona davvero molto male per l'utente finale. Lo stesso vale per quando l'app passa in primo piano e ho reimpostato la proprietà player.

Come evitare questo bip audio? Come test ho provato a rimuovere il player in un thread in background senza successo.

Aggiornamento: Ho parlato con un ingegnere Apple al WWDC e hanno detto che questo problema è un bug alla loro fine (finora non è stato risolto in iOS 9) e questo approccio è l'approccio corretto. Ottimo ...

+0

stesso problema in iOS 9.2. in realtà in 9.2, sembra essere peggiorato per me sul mio iPhone 6s rispetto a IOS 9.0. hai ancora qualche soluzione? –

+0

@PranoyC Nessuna soluzione ancora, sfortunatamente. –

+0

è anche in qualche modo dipende dall'hardware del dispositivo, penso. – zakhej

risposta

-1

Penso che non si chiami pause prima di impostare su nil e viceversa. E, prova a chiamare prepare prima del play.

+0

Grazie per la risposta. Il mio obiettivo è far entrare la musica in background senza fermarsi, quindi ho messo in pausa l'audio, rimosso il player del livello del player e quindi non lo ho fatto. Sfortunatamente sembra che lo stesso blip sia esistente. –

+0

Questo è davvero facile, è necessario creare un AVSession e implementare i metodi di Media Center. (Y) – khunshan

Problemi correlati