преобразовать поток в аудио файл - PullRequest
0 голосов
/ 17 июня 2019

Я отправляю аудиофайл на сервер API в MultiPartFormData.для этого сначала я преобразую файл хранилища в формат байтов, затем преобразую байт в поток и после этого отправляю сообщение с запросом MultiPartFormData. Этот сервер также отвечает на мой запрос в формате MultiPartformData с другим аудиофайлом.Я получаю ответ в HttpResponceMesseage, мой вопрос, как я могу преобразовать его в mp3 файл?Я использую Windows iot с платформой кодирования UWP.

multipartContent.Add(new ByteArrayContent(await GetBytesAsync(storageFile)),"audio","audio.mp3");
request.Content = multipartContent;
var response = await httpClient.SendAsync(request);
var content = new StreamReader(await response.Content.ReadAsStreamAsync()).ReadToEnd();

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Я сделал это с помощью дополнительного кода. сначала я конвертирую ответ в массив byte [], а затем записываю байты в файл в новом потоке задач, чтобы из-за того, что основной поток соответствовал пользовательскому интерфейсу, не позволял запускать на нем еще одну асинхронную задачу.

var response = await httpClient.SendAsync(request);
byte[] x=await response.Content.ReadAsByteArrayAsync();
await Task.Run(() =>
System.IO.File.WriteAllBytes(storageFile.Path,x));
0 голосов
/ 18 июня 2019

В UWP, если вы хотите записать в файл с использованием потока, мы будем следовать четырехступенчатой ​​модели:

  1. Открыть файл для получения потока
  2. Получить выходной поток.
  3. Создайте DataWriter объект и вызовите соответствующий метод Write.
  4. Фиксация данных в модуле записи данных и очистка потока вывода.

См. Создание, запись и чтение файла и Рекомендации по записи в файлы для получения дополнительной информации.

Официальный Пример доступа к файлу для справки.

...