Довольно странно, что код отлично работает на эмуляторе, но не на устройстве.
Я загружаю mp3 через http и сохраняю его в изолированном хранилище, прежде чем воспроизвести его.
Как будто я кеширую это навсегда. В следующий раз, если мне придется снова воспроизвести этот mp3, я просто сделаю это из изолированного хранилища.
Теперь, похоже, это работает на эмуляторе, но на устройстве я получаю ошибку, выданную MediaElement (вызывается функция myMedia_MediaFailed).
Отладчик показывает, что файл, который он пытается воспроизвести, имеет правильный размер, но ошибка есть.
У меня есть ОС 7.0 WP7, и я не могу найти какой-либо инструмент, который позволил бы мне по крайней мере взять mp3 из изолированного хранилища для воспроизведения на ПК, чтобы посмотреть, нормально ли сохранен файл.
Под функцией mywebClient_OpenReadCompleted здесь находится код
isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication();
bool checkQuotaIncrease = IncreaseIsolatedStorageSpace(e.Result.Length);
string audioFileName = "audiofile.mp3";
isolatedStorageFileStream = new IsolatedStorageFileStream(audioFileName, FileMode.Create, isolatedStorageFile);
long audioFileLength = (long)e.Result.Length;
byte[] byteImage = new byte[audioFileLength];
e.Result.Read(byteImage, 0, byteImage.Length);
isolatedStorageFileStream.Write(byteImage, 0, byteImage.Length);
isolatedStorageFileStream.Flush();
AudioPlayer.SetSource(isolatedStorageFileStream);
AudioPlayer.Play();