我正在开发一个 Android 应用程序,其目的是从 2 个服务器下载块(视频文件的一部分),在每个服务器下载后按顺序附加它们(到主视频文件中),最后在下载继续时播放这个视频文件。 .
当下载通过使用两个不同的线程(每个服务器一个)执行下载时串行完成时,这很有效。我想知道如何通过并发下载而不是串行下载来实现上述目标。
即同时按顺序从服务器下载块。比如同一时间段从server1下载chunk0、chunk1和chunk2(比方说是server2的3倍),从server2下载chunk3,这样我们在这段时间内完全使用了2台服务器的所有可用带宽时间。并且这个过程重复,直到所有块都被下载。
如上所述,通过使用线程和连接,下载是串行的。为了使其并发,我尝试从每个线程中删除连接,但是它不会按顺序下载块,并且也只从一个服务器下载,而不是从两个服务器下载。AsyncTask 不是一个解决方案,因为它也不会按顺序下载块。
那么,有什么方法可以实现这种并发并按我上面描述的顺序下载块?有没有人做过这样的项目,以便确定答案?