Использование NAudio для копирования нескольких MP3-файлов, расположенных по URL-адресам, и их объединения - PullRequest
0 голосов
/ 20 мая 2019

Отказ от ответственности: моя ясность в отношении Naudio и потоков минимальна.Из того, что я понимаю из документации Naudio, MP3FileReader не принимает поток без возможности поиска, а ресурсы, извлекаемые из HTTP, не имеют длины.

Существует один пример кода, в котором автор извлекает mp3 из URL с помощью MediaFoundationReader, но тот женабор операций (MP3FileReader) Я не могу сделать в этом классе.Как продолжить об этом.

using (MemoryStream output = new MemoryStream()) {

         foreach (string file in uuidList) {

            using (Stream inputStream = WebRequest.Create(file).GetResponse().GetResponseStream()) {

            Mp3FileReader reader = new Mp3FileReader(file);
            if ((output.Position == 0) && (reader.Id3v2Tag != null)) {

                  output.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length);
            }
            Mp3Frame frame;
            while ((frame = reader.ReadNextFrame()) != null) {

               output.Write(frame.RawData, 0, frame.RawData.Length);
            }
          }                               
        }
        binaryData = output.ToArray();
}

response.BinaryWrite(binaryData);
HttpContext.Current.ApplicationInstance.CompleteRequest();
...