如何在Windows Phone 7上保存来自互联网的MP3文件?

时间:2012-02-14 18:13:45

标签: c# windows-phone-7 mp3

我正在尝试从互联网上下载并保存.mp3文件,但是从外部链接中遇到了流:

private void saveSound()
    {
        IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
        using (var fs = new IsolatedStorageFileStream("123.mp3", FileMode.Create, iso))
        {
            //Here should be this Stream from the Internet...
            //Uri: "http://my-site.com/mega-popular-song.mp3"
            StreamResourceInfo rs = new StreamResourceInfo(stream, "audio/mpeg");
            int count = 0;
            byte[] buffer = new byte[4096];
            while (0 < (count = rs.Stream.Read(buffer, 0, buffer.Length)))
            {
                fs.Write(buffer, 0, count);
            }
            fs.Close();

        }
    }

此流应该是什么样的?下载和保存.mp3文件的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

我确信this article可以帮助你。像Bob提到的那样,你将不得不使用WebClient。基本上这是实现魔术的代码:

wc.OpenReadCompleted += ((s, args) =>
{
    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        if (store.FileExists(fileName))
            store.DeleteFile(fileName);

        using (var fs = new IsolatedStorageFileStream(fileName, FileMode.Create, store))
        {
            byte[] bytesInStream = new byte[args.Result.Length];
            args.Result.Read(bytesInStream, 0, (int)bytesInStream.Length);
            fs.Write(bytesInStream, 0, bytesInStream.Length);
            fs.Flush();
        }
    }
});

但我会阅读完整的文章,以充分了解会发生什么。希望这有帮助!