Silverlight应用程序如何从URL下载并播放mp3文件?

时间:2010-03-21 13:01:29

标签: silverlight audio mp3

我有一个小型的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文件的所有信息都显示了如何嵌入在< strong> .xap 文件,我不想这样做,因为我无法像上面那样动态下载动态

如何在Silverlight中下载和播放mp3文件,就像我下载并显示图像和文字一样?

1 个答案:

答案 0 :(得分:1)

您可以将MP3下载为二进制流并将结果存储在字节数组中。它将存储在你的字典中的这个字节数组。

如果要将字节数组分配给MediaElement,可以使用以下代码: -

void SetMediaElementSource(MediaElement me, byte[] mp3)
{
  me.SetSource(new MemoryStream(mp3));
}