Я хочу передать данные с сервера в MediaElement
в моем приложении Windows 8 Store (ранее 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);
Есть ли решение, которое позволяет мне передавать аудио, но позволяет мне копировать поток на диск, когда он закончил чтение с удаленной стороны?