Quiero transmitir datos desde un servidor a un MediaElement
en mi aplicación Windows 8 Store (anteriormente Metro). Sin embargo, necesito "grabar" la transmisión mientras se está transmitiendo, por lo que se puede enviar desde la memoria caché si se vuelve a solicitar, por lo que no quiero ingresar la URL directamente en el MediaElement
.Streaming con intermediario en Windows 8
En la actualidad, el principal escollo es que MediaElement.SetSource()
acepta una IRandomAccessStream
, no un System.IO.Stream
, que es lo que recibo de HttpWebResponse.GetResponseStream()
.
El código que tengo ahora, lo que no funciona:
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);
¿Existe una solución que me permite transmitir audio, pero permite que copie la corriente en el disco cuando se ha terminado de leer desde el control remoto ¿lado?
has dado cuenta? de hecho, no necesito almacenarlo, solo quiero transmitirlo directamente. – esskar
@esskar No realmente. La transmisión directa funciona de maravilla simplemente proporcionando la URL, o un 'InMemoryRandomAccessStream'. El problema es distribuir la transmisión a dos ubicaciones diferentes. –
gracias por la información. Intenté establecer la propiedad '.Source' directamente, pero no funcionó para mí. (Obtengo excepciones de null-ref en algún lugar de las profundidades), y no he descubierto cómo crear un 'IRandomAccessStream' para formar una URL. pero trabajaré en eso hoy. – esskar