Создание и уничтожение классов AVFoundation в фоновых очередях?

Я пытаюсь устранить некоторые хиты производительности Main Thread, которые возникают, когда я выделяю AVPlayer, AVPlayerItem и AVURLAsset в основном потоке. Имел ли кто-нибудь опыт перемещения или выделения этих объектов в фоновый поток? Точно так же может быть установлен текущий идентификатор AVPlayer в фоновом режиме?

Следующее, безусловно, повредит производительности прокрутки

  • Создание AVPlayer, падение 10 кадров в секунду
  • Добавление проигрывателя в AVPlayerLayer, падение 15 кадров в секунду
  • Начало воспроизведения, падение 15/25 кадров в секунду
  • Пауза воспроизведения, падение 15 кадр / с
  • Удалите AVPlayer, падение на 20+ fps

Я попытался выделить AVPlayer из фонового потока, однако AVFoundation переключится на главную и выполнит выделение / инициализацию из main. То же самое с воспроизведением / паузой.

У меня есть некоторый успех при освобождении AVPlayer / AVPlayerItem в фоновом потоке. В основном вам нужно очистить последнюю ссылку на AVPlayer из фонового потока.

Вообще говоря, если документация классов не документирована как потокобезопасная, вы не должны использовать объект этого класса для нескольких потоков.

Более того, в то время как есть преимущество в том, чтобы делать меньше в основном потоке, выделение AVPlayer , AVPlayerItem и AVURLAsset никогда не будет практически узким местом, о котором вам нужно беспокоиться. Вместо этого вы должны запускать Инструменты и находить реальные проблемы с производительностью, а вместо этого сосредоточиться на них.

  • Создание нового AVPlayer в фоновом режиме не работает?
  • Передача AVPlayer в другой ViewController без видео, кроме звука
  • Отключение звука AVPlayer Http Live Streaming video
  • Используя AVPlayer в iOS, вы можете узнать текущий файл .ts или текущую временную метку из кодировщика?
  • Одновременное скачивание и воспроизведение песни, которая собрана вместе из нескольких URL-адресов
  • Сохранение синхронизации двух AVPlayers
  • Как сохранить потоковые видеоданные от MPMoviePlayerController
  • Программно вызывать полноэкранную кнопку AVPlayerViewController
  • AVPlayerLayer пустой после ввода фона, находясь в скрытом контроллере и входящего на передний план и отображаемого
  • Элемент AVPlayer получает длительность nan
  • Переключение аудио траков для AVURLAsset с несколькими AVAssetTracks типа аудио
  • Давайте будем гением компьютера.