Как отображать несколько видео одновременно с помощью «AVPlayerItemVideoOutput»?

#ios #avfoundation #metal #core-video

#iOS #avfoundation #Металлические #core-video

Вопрос:

У меня есть 3D-сцена, отображаемая Metal на устройстве iOS. Цель состоит в том, чтобы несколько видео воспроизводились и отображались на поверхностях сцены. Я использую «AVPlayerItemVideoOutput» для извлечения видеокадров, и все работает должным образом, когда воспроизводится одно видео.

Проблема в том, что как только второе видео воспроизводится одновременно с первым, используя тот же точный метод (т.Е. Извлекая кадры с помощью ‘AVPlayerItemVideoOutput‘), первый объект ‘AVPlayerItemVideoOutput‘ возвращает false при вызове метода ‘hasNewPixelBufferForItemTime‘. Я создаю совершенно отдельные экземпляры ‘AVPlayer‘, ‘AVPlayerItem‘, AVPlayerItemVideoOutput и т. Д. Для каждого воспроизводимого видео.

Это ограничение или что-то не так с настройкой? Есть ли какая-либо альтернатива для достижения цели?

Комментарии:

1. Я не знаю об ограничении, и ваша настройка звучит нормально, но вы не показали никакого кода. Для локальных видео вы определенно можете использовать an AVAssetReader для декодирования двух видео одновременно, а затем отображать кадры на Metal текстуры.