Изменить вид, на котором воспроизводится видео

В моем приложении пользователь может воспроизводить видео и покидать экран, и он будет продолжать воспроизводиться в фоновом режиме (только аудио). Затем они могут вернуться, чтобы продолжить просмотр видео. Это означает, что вид, в котором находится видео, уничтожается, а затем воссоздается на более позднем этапе. Всякий раз, когда вид воссоздается, и проигрыватель устанавливается на его AVPlayerLayer, происходит заметное отставание в видео и, что более важно, в аудио.

Кто-нибудь знает, как устранить это отставание?

1 ответ

Решение

Ключом к тому, чтобы сделать это без задержки / задержки в аудио или видео, является сохранение вида с помощью AVPlayerLayer за пределами вида. При перезагрузке контроллера вместо создания нового представления и назначения его проигрывателя тому же проигрывателю, просто прикрепите старый вид к представлению нового контроллера представления.

Представление остается в памяти до тех пор, пока видео все еще воспроизводится, поэтому новый слой AVPlayerLayer не создается и не назначается. Это переназначение вызывает отставание.

Другие вопросы по тегам