Я создаю менеджер загрузок на С#. В настоящее время я разрабатываю компонент загрузки, который дает URL-адрес, загружает файлы с URL-адреса в сегментах.
В настоящее время я использую потоки ввода-вывода для каждого фрагмента, как показано ниже:
MyChunks.InputStream = rs ;
//rs is obtained by using GetResponse() from FtpWebRequest or HttpWebRequest
MyChunks.OutputStream = fs ; //fs is FileStream for writing on local file
chunksize = MyChunks.InputStream.Read(buffer, 0, bufferSize);
MyChunks.OutputStream.Write(buffer, 0, (int)chunksize);
Что касается других методов, которые я проанализировал, я обнаружил, что я также могу использовать метод `WebClient.DownloadDataAsync`.
Однако я не могу использовать фрагменты данных, загруженные в несколько потоков, для ускорения загрузки. Более того, приведенный выше код работает нормально.
Мой вопрос:
Существуют ли какие-либо другие способы загрузки фрагментов или приведенный выше код подходит?
Кроме того, я хочу воспроизводить аудио (mp3) / видеофайлы по мере их загрузки. Можете ли вы предложить способ сделать то же самое?