将流转换为音频文件

时间:2019-06-17 19:05:14

标签: c# uwp stream multipartform-data

我将音频文件发送到MultiPartFormData中的服务器API。为此,首先将存储文件转换为Byte格式,然后将Byte转换为Stream,然后我发布MultiPartFormData请求。该服务器也以另一个音频文件也以MultiPartformData格式答复我的请求。 我在HttpResponceMesseage中收到该响应,我的问题是如何将其转换为mp3文件? 我在UWP编码平台上使用Windows物联网。

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 :(得分:0)

在UWP中,如果要使用流写入文件,我们将遵循四步模型:

  1. Open文件以获取流
  2. Get输出流。
  3. 创建一个DataWriter对象并调用相应的Write方法。
  4. Commit数据写入器中的数据和flush输出流。

有关更多信息,请参见Create, write, and read a fileBest practices for writing to files

File access sample官方供您参考。

答案 1 :(得分:0)

我用额外的以下代码完成了此操作。 首先,我将响应转换为byte []数组,然后在新任务线程中将字节写入文件,由于主线程对应于UI,因此不允许在其上运行另一个Async任务。

var response = await httpClient.SendAsync(request);
byte[] x=await response.Content.ReadAsByteArrayAsync();
await Task.Run(() =>
System.IO.File.WriteAllBytes(storageFile.Path,x));