C# 直接下载mp3文件

C# 直接下载mp3文件,c#,xamarin.android,xamarin,C#,Xamarin.android,Xamarin,我已经使用xamarin一段时间了,目前我正在进行的项目需要下载一些mp3文件 我看过下载文件和下载图像的教程,但它们并没有把我带到任何地方,而是针对iOS的 给定urlwww.xyz.com/music.mp3,如何下载并保存mp3文件?Xamarin.iOS文档转换为下载字节 从下载字符串到下载字节(注意DownloadDataAsync和DownloadDataCompletedvsstring同级函数)进行调整后,应该可以正常工作 使用HttpClient 如果要使用较新的HttpCli

我已经使用xamarin一段时间了,目前我正在进行的项目需要下载一些mp3文件

我看过下载文件和下载图像的教程,但它们并没有把我带到任何地方,而是针对iOS的

给定url
www.xyz.com/music.mp3
,如何下载并保存mp3文件?

Xamarin.iOS文档转换为下载字节 从下载字符串到下载字节(注意
DownloadDataAsync
DownloadDataCompleted
vs
string
同级函数)进行调整后,应该可以正常工作

使用HttpClient 如果要使用较新的
HttpClient
库。在Xamarin.Android项目中添加对
System.Net.Http
的引用,并试一试类似的内容

var url = new Uri("http://url.to.some/file.mp3");
var httpClient = new HttpClient ();
httpClient.GetByteArrayAsync(url).ContinueWith(data => {
    string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
    string localFilename = "downloaded.mp3";
    string localPath = Path.Combine (documentsPath, localFilename);
    File.WriteAllBytes (localPath, data.Result);
});

最简单的方法是使用WebClient,如果在UI线程上,则调用方法DownloadFileTaskAsync:

        button.Click += async delegate
        {
            var destination = Path.Combine(
                System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.ApplicationData),
                    "music.mp3");

            await new WebClient().DownloadFileTaskAsync(
                new Uri("http://www.xyz.com/music.mp3"),
                destination);
        };
        button.Click += async delegate
        {
            var destination = Path.Combine(
                System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.ApplicationData),
                    "music.mp3");

            await new WebClient().DownloadFileTaskAsync(
                new Uri("http://www.xyz.com/music.mp3"),
                destination);
        };