用C#写一个随机音乐播放器

form1中namespce里的代码如下

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string folder = textBox1.Text;
        string folderPath = @folder; // 指定音频文件所在的文件夹路径
        OpenRandomFile(folderPath);
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
    //实际是随机打开一个文件,鉴于VS内置的库不能播放除了wav以外的音频
    private void OpenRandomFile(string folderPath)
    {
        if (!Directory.Exists(folderPath))
        {
            MessageBox.Show("指定的文件夹不存在,请检查路径是否正确。");
            return;
        }

        var files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories);
        if (files.Length == 0)
        {
            MessageBox.Show("文件夹为空或没有可访问的文件。");
            return;
        }

        Random random = new Random();
        int index = random.Next(files.Length);
        string filePath = files[index];

        try
        {
            System.Diagnostics.Process.Start(filePath);
        }
        catch (Exception ex)
        {
            MessageBox.Show($"无法打开文件: {ex.Message}");
        }
    }
}

实际是随机打开一个文件,鉴于VS内置的库不能播放除了wav以外的音频

效果如图

这里的文件夹地址是直接Ctrl+Shift+C复制过来的,注意要去掉引号

exe的链接如下

链接:https://pan.baidu.com/s/105w5fij6kkrUoWcjMuiBWA?pwd=tdo7 
提取码:tdo7

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个C#实现的简单音乐播放器: ```csharp using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using WMPLib; namespace MusicPlayer { public partial class Form1 : Form { // 创建Windows Media Player对象 private WindowsMediaPlayer player; public Form1() { InitializeComponent(); // 初始化Windows Media Player player = new WindowsMediaPlayer(); // 设置播放器属性 player.settings.autoStart = false; player.settings.volume = 50; player.PlayStateChange += new _WMPOCXEvents_PlayStateChangeEventHandler(player_PlayStateChange); // 加载音乐列表 LoadMusicList(); } // 加载音乐列表 private void LoadMusicList() { // 清空原有列表 listBox1.Items.Clear(); // 获取音乐文件夹路径 string path = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); // 遍历音乐文件夹下的所有音乐文件 foreach (string file in Directory.GetFiles(path, "*.mp3")) { // 添加到列表中 listBox1.Items.Add(Path.GetFileName(file)); } } // 播放音乐 private void PlayMusic(string path) { // 设置播放器的URL player.URL = path; // 开始播放 player.controls.play(); // 更新状态栏 toolStripStatusLabel1.Text = "正在播放:" + Path.GetFileName(path); } // 播放按钮的点击事件 private void button1_Click(object sender, EventArgs e) { if (listBox1.SelectedIndex >= 0) { // 获取选中项的完整路径 string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyMusic), listBox1.SelectedItem.ToString()); // 播放音乐 PlayMusic(path); } } // 暂停按钮的点击事件 private void button2_Click(object sender, EventArgs e) { player.controls.pause(); } // 停止按钮的点击事件 private void button3_Click(object sender, EventArgs e) { player.controls.stop(); } // 列表框的选中项改变事件 private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { // 如果没有选中项,则禁用播放按钮 if (listBox1.SelectedIndex < 0) { button1.Enabled = false; } else { button1.Enabled = true; } } // 播放状态改变事件 private void player_PlayStateChange(int NewState) { // 如果播放完毕,则更新状态栏 if ((WMPPlayState)NewState == WMPPlayState.wmppsMediaEnded) { toolStripStatusLabel1.Text = "播放完毕"; } } } } ``` 这个程序使用了Windows Media Player对象来实现音乐的播放、暂停和停止功能。它还可以从Windows音乐文件夹中自动加载所有MP3文件,并将它们添加到列表框中。当用户选择一个文件并点击“播放”按钮时,程序将使用Windows Media Player对象播放选定的音乐文件。程序还会更新状态栏以显示当前播放的音乐文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bhZ567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值