Я делаю следующее:Перегрузочные ключи в AVAsset когда статус AVKeyValueStatusFailed
- Создать новый
AVAsset
с заданным URL. Этот URL указывает на видео на удаленном веб-сервере. - Попытка загрузить
tracks
свойство по телефонуloadValuesAsynchronouslyForKeys:completionHandler:
- Первоначальный запрос терпит неудачу, потому что нет подключения к Интернету не существует
- Я заметил, что запрос не был по телефону
statusOfValueForKey:error:
- Я тогда ждать подключения вновь появится (используя некоторый код достижимости). Как только это произойдет, я снова звоню
loadValuesAsynchronouslyForKeys:completionHandler:
.
Здесь возникают проблемы. Я бы предположил, что AVAsset
идет вперед и пытается перезагрузить свойство треков, так как он не удался ранее. Однако, похоже, этого не происходит. statusOfValueForKey:error:
по-прежнему будет возвращать AVKeyValueStatusFailed
, хотя доступное интернет-соединение доступно и видео можно воспроизводить.
Есть ли способ сбросить состояние для данного свойства и попробовать другую нагрузку? Есть ли другой способ обойти это?
Возможно, вы пробовали делать 'cancelLoading' после его отказа? – Peres
Вы проверяете каждый из ключей? Каждый из ключей имеет свой статус и появляется случайным образом (на самом деле, но это то, как он будет чувствовать себя мудрым по времени), и не все одновременно. Первое правило потоковой передачи видео по-настоящему незнакомо, чем кажется на первый взгляд – Michael