nềnLàm thế nào để phát không đệm WAV với MediaStreamSource thực hiện trong Silverlight 4?
Tôi đang cố gắng để dòng một tập tin sóng trong Silverlight 4 sử dụng thực hiện MediaStreamSource tìm thấy here. Vấn đề là tôi muốn phát tệp trong khi tệp vẫn đang lưu vào bộ đệm hoặc ít nhất cung cấp cho người dùng một số phản hồi trực quan trong khi nó đang lưu vào bộ đệm. Còn bây giờ mã của tôi trông như thế:
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();
});
}
Vấn đề là sau khi cài đặt request.AllowReadStreamBuffering = false
dòng không hỗ trợ tìm kiếm và thực hiện đề cập ở trên ném một ngoại lệ (ghi nhớ Tôi đã đặt một số logic thiết lập vị trí vào if (stream.CanSeek)
khối):
đọc không được hỗ trợ trên các chủ đề chính khi đệm bị vô hiệu hóa
Câu hỏi
Có cách nào để phát luồng WAV mà không phải đệm trước trong Silverlight 4 không?