簡體   English   中英

Silverlight應用程序如何從URL下載並播放mp3文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM