一、作业内容
新增音乐播放器功能之在线播放
音乐播放器详情可见:c#编码--音乐播放器
二、窗体实现
1、将Button5控件拖放到Winform窗体中,名称改为“播放在线文件”。
2、将TextBox控件拖放到窗体上,用于存放下载地址。
三、代码实现
1、播放在线音乐
private async void button5_Click(object sender, EventArgs e)
{
string path=textBox1.Text;//获取要想听的音乐文件的网址
string filename = "D:\\onlinemusicplay\\music.mp3"; // 下载到本地的文件
try
{
await DownloadMusicAsync(path, filename);
Console.WriteLine("Music download completed.");
axWindowsMediaPlayer1.URL=filename;
axWindowsMediaPlayer1.Ctlcontrols.play();
}
catch (Exception ex)
{
Console.WriteLine($"Failed to download music: {ex.Message}");
}
Console.WriteLine("Press any key to exit.");
Console.Read();
}
2、下载功能实现
static async Task DownloadMusicAsync(string url, string filename)//下载函数
{
using (HttpClient client = new HttpClient())//进行网址响应
{
using (HttpResponseMessage response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead))
{
response.EnsureSuccessStatusCode();
using (Stream streamToReadFrom = await response.Content.ReadAsStreamAsync())
{
using (Stream streamToWriteTo = File.Open(filename, FileMode.Create))
{
await streamToReadFrom.CopyToAsync(streamToWriteTo);
}
}
}
}
}
四、总结分析
为音乐播放器新增一个在线播放功能,使用Naudio库来处理音乐播放,使用HttpClient处理HTTP流。