У меня есть небольшое приложение 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 , но вся информация, которую я нахожу в Интернете о воспроизведении файлов MP3 в Silverlight, показывает, как вставлять их в .xap файл, который я не хочу делать, поскольку я не смог бы загрузить их динамически , как я делаю выше.
Как загрузить и воспроизвести mp3-файлы в Silverlight так же, как я загружаю и показываю изображения и текст?