[英]How can a silverlight app download and play an mp3 file from a URL?
我有一個小型的Silverlight應用程序,它可以從URL下載所需的所有圖像和文本 ,如下所示:
if (dataItem.Kind == DataItemKind.BitmapImage)
{
WebClient webClientBitmapImageLoader = new WebClient();
webClientBitmapImageLoader.OpenReadCompleted += new OpenReadCompletedEventHandler(webClientBitmapImageLoader_OpenReadCompleted);
webClientBitmapImageLoader.OpenReadAsync(new Uri(dataItem.SourceUri, UriKind.Absolute), dataItem);
}
else if (dataItem.Kind == DataItemKind.TextFile)
{
WebClient webClientTextFileLoader = new WebClient();
webClientTextFileLoader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClientTextFileLoader_DownloadStringCompleted);
webClientTextFileLoader.DownloadStringAsync(new Uri(dataItem.SourceUri, UriKind.Absolute), dataItem);
}
和:
void webClientBitmapImageLoader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(e.Result);
DataItem dataItem = e.UserState as DataItem;
CompleteItemLoadedProcess(dataItem, bitmapImage);
}
void webClientTextFileLoader_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
DataItem dataItem = e.UserState as DataItem;
string textFileContent = e.Result.ForceWindowLineBreaks();
CompleteItemLoadedProcess(dataItem, textFileContent);
}
然后,將每個圖像和文本文件放入詞典中,以便應用程序可以隨時訪問它們。 這很好。
現在,我想對mp3文件執行相同的操作,但是我在網上找到的有關在Silverlight中播放mp3文件的所有信息都顯示了如何將它們嵌入 .xap文件中,我不想這樣做,因為我不想這樣做。能夠像我上面一樣動態下載它們。
如何像下載並顯示圖像和文本一樣在Silverlight中下載和播放mp3文件?
您可以將MP3下載為二進制流,並將結果存儲在字節數組中。 它是您將在字典中存儲的此字節數組。
在您想要將字節數組分配給MediaElement時,您將使用如下代碼:
void SetMediaElementSource(MediaElement me, byte[] mp3)
{
me.SetSource(new MemoryStream(mp3));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.