开发者

i want to play music from webSite with the Mediaelement ," media.setSource()"

i get the stream from webSite ,then put it in isolatedStorage into IsolatedstorageStre开发者_开发技巧am ,

but it don't work ,no error no sound , what's wrong ????

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();
      });

}        


ok thanks keyboardP for your help ;here is my code

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);                  

        }

}


Assuming your saving and reading code is correct, your stream's position might be at the end. Try adding

songStream.Position = 0;

before SetSource(songStream);

Try using this to save the file:

 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); 
        } 
 } 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜