я хочу воспроизводить музыку с веб-сайта с помощью медиаэлемента "media.setSource ()" - PullRequest
0 голосов
/ 26 июля 2011

Я получаю поток с веб-сайта, затем помещаю его в изолированное хранилище в IsolatedstorageStream,

, но он не работает, нет ошибок, нет звука, что не так?

HttpWebResponse reponse = request.EndGetResponse(result) as HttpWebResponse;
if (reponse.StatusCode == HttpStatusCode.OK)
{

   Stream stream=reponse.GetResponseStream();
   SaveMusic(stream, "music");
   ReadMusic("music");
   Deployment.Current.Dispatcher.BeginInvoke(
       () =>
       {
           me.AutoPlay = true;
           me.Volume = 100;
           me.SetSource(songStream);
           me.Play();
      });

}        

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

хорошо, спасибо клавиатура P за вашу помощь, вот мой код

protected void SaveMusic(Stream stream,string name)
{

            IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
            if (!fileStorage.DirectoryExists("Source/Music"))
            {
                fileStorage.CreateDirectory("Source/Music");
            }
            using (IsolatedStorageFileStream fileStream = IsolatedStorageFile.GetUserStoreForApplication().OpenFile("Source\\Music\\" + name + ".mp3", FileMode.Create))
            {
                byte[] bytes = new byte[stream.Length];
                stream.Read(bytes, 0, bytes.Length);
                fileStream.Write(bytes, 0, bytes.Length);
                fileStream.Flush();
            }

}
protected void ReadMusic(string name)
{

        using (IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            songStream = null;
            songStream = new IsolatedStorageFileStream("Source\\Music\\" + name + ".mp3", FileMode.Open, fileStorage);                  

        }

}
0 голосов
/ 26 июля 2011

Если ваш код saving и reading правильный, ваш stream's position может быть в конце.Попробуйте добавить

songStream.Position = 0;

до SetSource(songStream);

Попробуйте использовать это для сохранения файла:

 using (var fileStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
 { 
        var buffer = new byte[1024]; 
        using (var myIsStream = fileStorage.OpenFile("Source\\Music\\" + name + ".mp3", FileMode.CreateNew)) 
        { 
              int bytesRead = 0; 
              while ((bytesRead = stream.Read(buffer, 0, 1024)) > 0) 
              myIsStream.Write(buffer, 0, bytesRead); 
        } 
 } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...