Изменить вид, на котором воспроизводится видео
В моем приложении пользователь может воспроизводить видео и покидать экран, и он будет продолжать воспроизводиться в фоновом режиме (только аудио). Затем они могут вернуться, чтобы продолжить просмотр видео. Это означает, что вид, в котором находится видео, уничтожается, а затем воссоздается на более позднем этапе. Всякий раз, когда вид воссоздается, и проигрыватель устанавливается на его AVPlayerLayer, происходит заметное отставание в видео и, что более важно, в аудио.
Кто-нибудь знает, как устранить это отставание?
1 ответ
Ключом к тому, чтобы сделать это без задержки / задержки в аудио или видео, является сохранение вида с помощью AVPlayerLayer за пределами вида. При перезагрузке контроллера вместо создания нового представления и назначения его проигрывателя тому же проигрывателю, просто прикрепите старый вид к представлению нового контроллера представления.
Представление остается в памяти до тех пор, пока видео все еще воспроизводится, поэтому новый слой AVPlayerLayer не создается и не назначается. Это переназначение вызывает отставание.