Я работаю над приложением для Android, целью которого является загрузка фрагментов(частей видеофайла) с 2 серверов, добавление их по порядку(в основной видеофайл) после каждый из них загружается и, наконец, воспроизводит этот видеофайл, пока продолжается загрузка..
Это хорошо работает, когда загрузка выполняется последовательно с использованием двух разных потоков (по одному для каждого сервера), которые выполняют загрузку. Я хочу знать, как можно добиться вышеуказанного, но с одновременной загрузкой вместо последовательной.
То есть загружать чанки с серверов одновременно и по порядку. Например, за тот же период времени загрузите чанк0, чанк1 и чанк2 с сервера 1 (который, скажем, в 3 раза быстрее, чем сервер 2) и чанк3 с сервера 2, так что мы полностью используем всю доступную пропускную способность 2 сервера в этот период времени. И этот процесс повторяется до тех пор, пока не будут загружены все фрагменты.
Как я уже сказал выше, при использовании потоков и соединений загрузка выполняется последовательно. Чтобы сделать его параллельным, я попытался удалить объединение из каждого потока, но тогда он не загружает куски по порядку, а также загружает только с одного сервера, а не с обоих. AsyncTask не является решением, поскольку он также не загружает фрагменты по порядку.
Итак, есть ли способ добиться этой одновременной и по порядку загрузки фрагментов, как я описал выше? Кто-нибудь делал что-то подобное в качестве проекта, чтобы точно знать ответ?