Может, кто-нибудь подскажет, есть ли способ выборочной предварительной буферизации элементов avplayeritems в массиве AVQueuePlayer
, вместо того, чтобы оставить его на автоматическом способе AVQueuePlayer
загрузки только следующего элемента по окончании первого элементаиграть.
Я загружаю последовательность из 4 коротких видеоклипов, и я хотел бы предварительно их кэшировать, прежде чем сказать AVQueuePlayer
, что нужно воспроизвести массив.Есть ли на самом деле способ попасть под прицел avqueueplayer и контролировать предварительную буферизацию по желанию?
Прямо сейчас, с его режимом ленивой загрузки по умолчанию, я испытываю некоторое затруднение при воспроизведении с клипамидаже не воспроизводится должным образом, потому что AVQueuePlayer
пытается загрузить следующий клип во время воспроизведения.Я делаю это на iPad, развернутом на реальном устройстве, а не на симуляторе.
Вы можете сделать это с помощью mpmovieplayer, вызвав [player prepareToPlay];
, который вручную запускает загрузку каждого видеофайла, который вы хотите, а затемВы можете проверить завершение загрузки, наблюдая за уведомлением mpmovieplayerLoadstateDidChange
и проверяя значение loadState
, чтобы убедиться, что оно полностью загружено, а затем указав mpmovieplayer на воспроизведение.Как вы можете эффективно сделать подобное с AVQueuePlayer
?
Возможно ли это, или я обнаружил один из главных недостатков AVQueuePlayer
?
Хорошее предложение сplayerObserver
Стивен, но нужно что-то вроде того, чтобы вы могли явно загружать отдельные элементы в память и затем указывать AVQueuePlayer
'не воспроизводить первый элемент в массиве, пока ВСЕ элементы в массивезагружаются в память 'В настоящее время, кажется, нет никакого способа запустить даже второй элемент в загрузке массива, пока первый не подходит к концу!
Как отдельная проблема, я также заметил некоторыестранность в AVQueuePlayer
, где, если вы загружаете два одинаковых исходных видеофайла в массив (оба ссылаются как два совершенно отдельных AVPlayerItems
, как вы должны делать), когда вы проигрываете видеоклипы в массиве на всем протяжении,в первый раз клип воспроизводится нормально, но когда дело доходит до воспроизведения того же самого клипа снова (как отдельный AVPlayerItem
), он воспроизводит очень быстродо определенной точки в видео, затем, наконец, начинает воспроизводиться с нормальной скоростью оттуда.
Кто-нибудь еще заметил это поведение?