我尝试使用HttpClient
读取音频流,因为我需要修改HTTP标头。唯一的#34;工作"我找到的方法如下:
HttpResponseMessage response = await httpClient.GetAsync("http://...");
Stream stream = await response.Content.ReadAsStreamAsync();
IRandomAccessStream content = stream.AsRandomAccessStream();
musicPlayer.SetSource(content, "audio/mpeg"); //musicPlayer is a MediaElement object
musicPlayer.Play();
问题是文件完全下载后MediaElement
真正开始播放,因此对于流媒体来说它毫无用处。收到信息流后我就需要它播放。
答案 0 :(得分:0)
您想要使用GetAsync
的重载ResponseContentRead
。默认值为stream
,这意味着在完全阅读内容之前,ResponseHeadersRead
将无法使用。请改用stream
,这意味着只有在读取标题后,HttpResponseMessage response = await httpClient.GetAsync("http://...",
HttpCompletionOption.ResponseHeadersRead);
才会立即可用。
IndexField