Antecedentes¿Cómo se juega WAV sin buffer con la implementación de MediaStreamSource en Silverlight 4?
que estoy tratando de transmitir un archivo de onda en Silverlight 4 usando la aplicación MediaStreamSource encontró here. El problema es que quiero reproducir el archivo mientras aún está almacenado en el búfer, o al menos darle al usuario algunos comentarios visuales mientras se está almacenando en el búfer. Por ahora mi código es el que:
private void button1_Click(object sender, RoutedEventArgs e)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(App.Current.Host.Source, "../test.wav"));
//request.ContentType = "audio/x-wav";
request.AllowReadStreamBuffering = false;
request.BeginGetResponse(new AsyncCallback(RequestCallback), request);
}
private void RequestCallback(IAsyncResult ar)
{
this.Dispatcher.BeginInvoke(delegate()
{
HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(ar);
WaveMediaStreamSource wavMss = new WaveMediaStreamSource(response.GetResponseStream());
try
{
me.SetSource(wavMss);
}
catch (InvalidOperationException)
{
// This file is not valid
}
me.Play();
});
}
El problema es que después de ajustar request.AllowReadStreamBuffering = false
la corriente no es compatible con la búsqueda y la aplicación mencionada anteriormente se produce una excepción (tenga en cuenta que he puesto algo de la lógica de ajuste de la posición if (stream.CanSeek)
en bloque):
Leer no es compatible con el hilo principal cuando el búfer está desactivado
pregunta
¿Hay alguna manera de reproducir la secuencia WAV sin almacenarla de antemano en Silverlight 4?