У меня есть код для записи некоторого музыкального/видеофайла из онлайн-потока (видеопотока или радио).Установить поток для MediaElement из запроса Http
Как изменить его для установки свойства SetSource в свой MediaElement (например, из IBuffer или Bytes [], ...)?
(я не могу использовать вариант, как это:
mediaElement1.Source = новый Ури (urlLinkToOnlineStream); mediaElement1.Play();
)
мне нужно установить SetSource непосредственно из уже открытый поток (мне нужно записать в файл и записать те же байты [] из потока в тот же момент или с небольшой паузой).
HttpClientHandler aHandler = new HttpClientHandler();
aHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
HttpClient aClient = new HttpClient(aHandler);
aClient.DefaultRequestHeaders.ExpectContinue = false;
HttpResponseMessage response = await aClient.GetAsync(urlLinkToOnlineStream, HttpCompletionOption.ResponseHeadersRead);
var destinationFile = await KnownFolders.MusicLibrary.CreateFileAsync(@"recorded.mp3", CreationCollisionOption.ReplaceExisting);
var fileStream = await destinationFile.OpenAsync(FileAccessMode.ReadWrite);
Stream stream = await response.Content.ReadAsStreamAsync();
IInputStream inputStream = stream.AsInputStream();
ulong totalBytesRead = 0;
while (true)
{
// Read from the web.
IBuffer buffer = new Windows.Storage.Streams.Buffer(1024);
buffer = await inputStream.ReadAsync(buffer, buffer.Capacity, InputStreamOptions.None);
if (buffer.Length == 0)
{
break;
}
totalBytesRead += buffer.Length;
await fileStream.WriteAsync(buffer);
}
inputStream.Dispose();
fs.Dispose();
У меня есть образец для подключения 'Windows.Web.Http.HttpClient' с' MediaElement' здесь: https://github.com/kiewic/MediaElementWithHttpClient И есть образец 'System.Net.Http.HttpCient' с «MediaElement» здесь: http://stackoverflow.com/questions/18594659/how-to-play-a-video-stream-that-requires-authentication/18630815#comment53215153_18630815 – kiewic