Я использую AVAssetDownloadTask
, чтобы загрузить звук, зашифрованный FairPlay.Согласно рекомендациям, аудио делится на маленькие порции, чтобы обеспечить возможность переключения между битрейтами во время потоковой передачи.Наши куски занимают около 6 секунд каждый, что означает размер менее 100 КБ.
Скорость загрузки этого процесса довольно плохая.Я видел скорость от 85 КБ / с до 250 КБ / с.Это связано с тем, что, когда я загружаю новую бета-версию Xcode, я получаю несколько мегабайт в секунду.
Я предполагаю, что медленная скорость связана с необходимостью сделать отдельный запрос для каждого сегмента, чтомного накладных расходов.Я попытался проверить трафик загрузки, используя Charles , и хотя он показывает одно HTTPS-соединение для каждой задачи загрузки, размер тела запроса постоянно увеличивается в течение всей загрузки.Я попытался загрузить тестовый файл объемом 100 МБ с того же сервера, на котором находятся аудиофайлы, и он работал со скоростью несколько мегабайт в секунду.
Мой вопрос: каковы наилучшие методы получения хорошей производительности при использовании AVAssetDownloadTask
?Должны ли сегменты быть больше?Должен ли быть отдельный файл, который представляет собой один большой блок для загрузки?Или это странное поведение, предполагающее, что я что-то настроил неправильно?