SfondoCome riprodurre un WAV non bufferizzato con l'implementazione MediaStreamSource in Silverlight 4?
sto cercando di trasmettere un file wave in Silverlight 4 utilizzando implementazione MediaStreamSource trovato here. Il problema è che voglio riprodurre il file mentre è ancora in fase di buffering, o quantomeno dare all'utente un feedback visivo mentre è in buffering. Per ora il mio codice è simile che:
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();
});
}
Il problema è che dopo aver impostato request.AllowReadStreamBuffering = false
il flusso non supporta ricerca e l'attuazione di cui sopra genera un'eccezione (tenere a mente ho messo un po 'della logica di impostazione della posizione in if (stream.CanSeek)
blocco):
Leggi non è supportata sul thread principale quando il buffer è disattivato
domanda
C'è un modo per riprodurre stream WAV senza il buffering in anticipo in Silverlight 4?