Ich habe eine kleine Silverlight-Anwendung, die alle Bilder et texte von einer URL benötigt, etwa so:
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);
}
und:
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);
}
Die Bilder und Textdateien werden dann jeweils in eine Wörterbuch so dass die Anwendung jederzeit Zugriff darauf hat. Das funktioniert gut.
Jetzt möchte ich dasselbe tun mit mp3 Dateien, aber alle Informationen, die ich im Internet über die Wiedergabe von mp3-Dateien in Silverlight finde, zeigen, wie man einbetten sie im .xap Datei, was ich nicht tun möchte, da ich sie dann nicht mehr herunterladen könnte dynamisch wie ich es oben tue.
Wie kann ich mp3-Dateien in Silverlight herunterladen und abspielen, so wie ich Bilder und Text herunterlade und anzeige?