Veg*_*sen 14 c# httpwebrequest microsoft-metro windows-8
我想将数据从服务器流式传输到MediaElement我的Windows 8商店(以前称为Metro)应用程序中.但是,我需要在流式传输时"记录"流,因此如果重新请求,它可以从缓存中提供,因此我不想直接将URL提供给MediaElement.
目前,绊脚石是MediaElement.SetSource()接受一个IRandomAccessStream,而不是一个System.IO.Stream,这是我得到的HttpWebResponse.GetResponseStream().
我现在的代码,它不起作用:
var request = WebRequest.CreateHttp(url);
request.AllowReadStreamBuffering = false;
request.BeginGetResponse(ar =>
{
var response = ((HttpWebResponse)request.EndGetResponse(ar));
// this is System.IO.Stream:
var stream = response.GetResponseStream();
// this needs IRandomAccessStream:
MediaPlayer.SetSource(stream, "audio/mp3");
}, null);
Run Code Online (Sandbox Code Playgroud)
是否有一个允许我传输音频的解决方案,但允许我在从远程端读完后将流复制到磁盘?
我还没有尝试过以下想法,但它可能会起作用:您可以开始将 Web 数据流式传输到文件中,然后在几秒钟后(用于缓冲)将该文件传递给 MediaElement。
我注意到 MediaElement 对于打开正在写入的文件可能很挑剔,但我已经看到它可以工作。不过,我不能说为什么它有时有效,有时无效。
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |