Как я могу избежать звукового сигнала AVPlayerLayer `setPlayer`?

У меня есть приложение, которое воспроизводит видео, используя AVPlayer и AVPlayerLayer. В моем приложении я могу воспроизводить звук, когда приложение заблокировано, установив для свойства player моего AVPlayerLayer значение nil, когда приложение переходит в фоновый режим:

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

    [[self playerLayer] setPlayer:nil];

}

Однако, когда я это делаю, звук будет отставать/мигать примерно на 0,5 секунды. Это звучит очень плохо для конечного пользователя. То же самое происходит, когда приложение выходит на передний план, и я переустанавливаю свойство player.

Как я могу избежать этого звукового сигнала? В качестве теста я попытался удалить плеер в фоновом потоке, но безрезультатно.

Обновление: я говорил с инженером Apple на WWDC, и они сказали, что эта проблема является ошибкой на их стороне (пока не исправленной в iOS 9), и этот подход является правильным подходом. Большой...


person Aaron Wojnowski    schedule 25.05.2015    source источник
comment
та же проблема в iOS 9.2. вообще-то в 9.2 у меня на айфоне 6s вроде стало хуже по сравнению с IOS 9.0. у вас есть какое-нибудь решение?   -  person sudoExclaimationExclaimation    schedule 30.12.2015
comment
@PranoyC К сожалению, решения пока нет.   -  person Aaron Wojnowski    schedule 30.12.2015
comment
это также как-то зависит от аппаратного обеспечения устройства, я думаю.   -  person Artem Shmatkov    schedule 11.12.2017


Ответы (1)


Я думаю, вы не можете позвонить pause перед установкой nil и наоборот. И попробуйте позвонить prepare до play.

person khunshan    schedule 25.05.2015
comment
Спасибо за ответ. Моя цель состоит в том, чтобы музыка переходила в фоновый режим без остановки, поэтому я приостановил звук, удалил проигрыватель слоя проигрывателя, а затем возобновил его паузу. К сожалению, похоже, что такая же вспышка существует. - person Aaron Wojnowski; 25.05.2015
comment
Это действительно просто, вам нужно создать AVSession и реализовать методы Media Center. (Я) - person khunshan; 26.05.2015