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