使用C#开发的简易音乐播放器

这是一个使用 C# 和 Windows Forms 开发的简易音乐播放器,具有基本的播放、暂停、停止、音量调节和音乐列表功能。此外,在上次发布的播放器功能中,还添加了从网络下载音乐文件并显示下载进度的功能。

功能特点:

  1. 本地音乐播放:支持播放本地的 MP3、FLAC、WAV 等格式的音乐文件。
  2. 音乐列表管理:可以选择多个本地音乐文件,添加到播放列表中进行播放。
  3. 音量调节:通过滑动条可以调节音乐的音量。
  4. 网络音乐下载:支持从网络下载音乐文件,并显示下载进度条。
  5. Ogg 文件播放:支持播放 Ogg 格式的音乐文件。

使用方法:

  1. 添加本地音乐:点击“选择音频”按钮,选择本地的音乐文件,即可添加到播放列表中。
  2. 播放音乐:在列表中选择要播放的音乐,点击“播放”按钮即可开始播放。
  3. 调节音量:通过滑动条可以调节音量大小。
  4. 停止播放:点击“停止”按钮可以停止当前正在播放的音乐。
  5. 网络下载音乐:点击“下载音乐”按钮,输入音乐文件的 URL,即可开始下载音乐文件。

winform窗体控件设计

通过button控件我们设计“播放ogg文件”“选择歌曲”“停止播放”和“下一首”这四个功能模块,listbox模块的右侧由一个竖着的进度条来控制音量,listbox用于显示我们的音乐播放列表,open file dialog1用于获取音乐文件,同时利用Windows自带的控件axWindowsMediaPlayer控件来实现音乐的播放功能,同时它也具有音乐播放器基本的暂停播放音量调节的作用,点击下载歌曲按钮可以再提前设置好的网站里下载音乐。

实现细节:

  • 使用 NAudio 库实现音乐播放功能。
  • 使用 HttpClient 实现网络请求,支持从网络下载音乐文件。
  • 使用 ProgressBar 显示下载进度。
  • 使用 OpenFileDialog 实现选择本地音乐文件功能。

链接网络下载音乐

在这个音乐播放器应用程序中,我们实现了从网络下载音乐文件的功能,让用户可以通过输入音乐文件的 URL 地址,将音乐文件下载到本地进行播放。这一功能主要涉及使用 HttpClient 和 WebClient 进行网络请求和文件下载的操作。

介绍 DownloadFile 函数

在我的音乐播放应用程序中,DownloadFile 函数用于从指定的 URL 下载音乐文件并保存到本地存储。这个函数通过 HttpClient 类进行网络请求,并使用异步编程以确保程序的响应性。下面是对该函数的简要说明:

功能概述

DownloadFile 函数的主要任务是从给定的 URL 下载文件并保存到指定路径。它利用了 HttpClient 进行 HTTP GET 请求,并将响应内容写入本地文件。

代码解析
  1. 创建 HttpClient 实例

    using (HttpClient client = new HttpClient())
    

    创建一个 HttpClient 对象用于发送 HTTP 请求。

  2. 发送 GET 请求

    using (HttpResponseMessage response = await client.GetAsync(url))
    

    异步发送 GET 请求并获取响应。

  3. 读取响应内容

    using (Stream stream = await response.Content.ReadAsStreamAsync())
    

    异步读取响应内容为流。

  4. 创建文件流

    using (FileStream fileStream = new FileStream(destinationPath, FileMode.Create, FileAccess.Write, FileShare.None))
    

    创建一个文件流以写入下载内容。

  5. 复制流

    await stream.CopyToAsync(fileStream);
    

  6. 将响应流复制到文件流中进行保存。

  7. 使用方法

    在用户点击下载按钮时调用该函数:

    private async void button5_Click(object sender, EventArgs e)
    {
        // 音乐文件的 URL 地址
        string url = "your url";
    
        // 从 URL 中提取文件名
        string fileName = Path.GetFileName(url);
    
        // 设置保存路径
        string savePath = Path.Combine("your path", fileName);
    
        // 显示下载进度条
        progressBar1.Visible = true;
    
        // 使用 WebClient 发起文件下载请求
        using (WebClient client = new WebClient())
        {
            // 下载进度改变事件
            client.DownloadProgressChanged += (s, args) =>
            {
                // 更新进度条
                progressBar1.Value = args.ProgressPercentage;
            };
    
            // 下载完成事件
            client.DownloadFileCompleted += (s, args) =>
            {
                // 隐藏进度条
                progressBar1.Visible = false;
    
                // 提示下载完成
                MessageBox.Show("下载完成!");
    
                // 打开文件夹并选中下载的文件
                Process.Start("explorer.exe", "/select," + savePath);
            };
    
            // 发起文件下载请求
            await client.DownloadFileTaskAsync(new Uri(url), savePath);
        }
    }

优点
  • 异步操作:确保用户界面在下载过程中保持响应。
  • 简洁明了:代码结构简单易懂。
  • 可靠性高:使用 HttpClient 提供的异步方法提高了可靠性。

实现步骤

  1. 获取音乐文件的 URL 地址:用户在应用程序中输入要下载的音乐文件的 URL 地址。
  2. 下载音乐文件:应用程序使用 HttpClient 或 WebClient 发起网络请求,获取音乐文件的数据流。
  3. 保存音乐文件:将从网络获取的音乐文件数据流保存到本地文件中,以便后续播放。

代码示例

以下是实现链接网络下载音乐的部分代码示例:

private async void button5_Click(object sender, EventArgs e)
{
    // 音乐文件的 URL 地址
    string url = "your url";

    // 从 URL 中提取文件名
    string fileName = Path.GetFileName(url);

    // 设置保存路径
    string savePath = Path.Combine("your path", fileName);

    // 显示下载进度条
    progressBar1.Visible = true;

    // 使用 WebClient 发起文件下载请求
    using (WebClient client = new WebClient())
    {
        // 下载进度改变事件
        client.DownloadProgressChanged += (s, args) =>
        {
            // 更新进度条
            progressBar1.Value = args.ProgressPercentage;
        };

        // 下载完成事件
        client.DownloadFileCompleted += (s, args) =>
        {
            // 隐藏进度条
            progressBar1.Visible = false;

            // 提示下载完成
            MessageBox.Show("下载完成!");

            // 打开文件夹并选中下载的文件
            Process.Start("explorer.exe", "/select," + savePath);
        };

        // 发起文件下载请求
        await client.DownloadFileTaskAsync(new Uri(url), savePath);
    }
}

注意事项

  • 在下载文件时,应该确保用户输入的 URL 地址有效,并且网络连接正常。
  • 下载过程中应该显示下载进度,以便用户了解下载状态。
  • 下载完成后应该提示用户,并且可以打开文件夹并选中下载的文件,方便用户查看和管理。

通过以上步骤,我们实现了从网络下载音乐文件的功能,为用户提供了更多选择和方便,让他们可以自由选择音乐,并将其保存到本地进行欣赏。

程序截图:

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值