(VisualStudio2022)Winform音频播放器制作过程及教程
创始人
2025-09-07 09:04:49
0次

大家好,我是雷工!

本文记录Winform音频播放器的制作过程。

一、开发运行环境

1、系统开发平台:VisualStudio2022。

2、系统开发语言:C#。

二、功能说明及疗效展示

1、音频播放器可以通过音频列表显示可以播放的音频名称,可以通过列表框下方的添加和删除按钮在列表中添加和删除音频;

2、选中列表中的单个音频名称,点击【播放】按钮播放选中的音频,点击【暂停】按钮暂停播放; 按【继续】键继续播放音频,点击【上一首歌曲】】【下一首】可根据列表顺序上下切换播放音频;

3、具有简单的模式选择功能。 点击【白天模式】按钮将界面主界面颜色改为黑色,点击【夜间模式】按钮将主界面颜色变为蓝色;

4、具有进度条显示功能,可显示视频播放进度;

5.【播放】按钮功能演示

华为手机怎样编辑录音_录音编辑软件教程_手机录音编辑软件

起到疗效

6.【暂停】【继续】按钮功能演示

华为手机怎样编辑录音_手机录音编辑软件_录音编辑软件教程

暂停以恢复演示

7.【上一曲】【下一曲】按键功能演示

录音编辑软件教程_手机录音编辑软件_华为手机怎样编辑录音

上一首歌 下一首歌 demo

8.模式切换功能演示

录音编辑软件教程_华为手机怎样编辑录音_手机录音编辑软件

模式开关

3.界面设计

录音编辑软件教程_华为手机怎样编辑录音_手机录音编辑软件

接口效能

1、添加Button控件:排列功能键,【播放】【暂停】【继续】【上一个】【下一个】【添加】【删除】【白天模式】【夜间模式】。

2.添加Label控件:显示文本标签:“音乐列表”

3、添加列表框控件:

用于显示音乐标题列表

4、添加WindowsMediaPlayer控件:

在使用WindowsMediaPlayer控件进行程序开发之前,需要将其添加到工具箱中。 以下是添加它的步骤。

4.1. 选中工具箱,在工具箱任意位置右击,在弹出的快捷菜单中选择“选择项”。

录音编辑软件教程_华为手机怎样编辑录音_手机录音编辑软件

选项

4.2. 在弹出的“选择工具箱项”对话框中,选择“COM组件”选项卡录音编辑软件教程,在COM组件列表中找到名为“WindowsMediaPlayer”的组件,然后单击【确定】按钮。

华为手机怎样编辑录音_手机录音编辑软件_录音编辑软件教程

Windows媒体播放器

在添加WindowsMediaPlayer控件的时候遇到了一个小插曲。 点击【确定】按钮后,在工具箱中仍然没有找到WindowsMediaPlayer控件。 如果你有同样的问题,可以参考下一篇《为什么添加控件后工具箱不显示》。

4.3. 如果要实现自定义按钮进度条,可以在WindowsMediaPlayer上右击,选择【属性】,在弹出的界面中选择控件布局方式【无】。

手机录音编辑软件_华为手机怎样编辑录音_录音编辑软件教程

属性页

4.4、不显示工具栏,需要减少一行代码

axWindowsMediaPlayer1.uiMode="none";

5、添加定时器控件:将【工具箱】->【定时器】控件拖到设计界面。

6、添加Panel控件:选择【Container】中的【Panel】控件添加到设计界面,通过复制粘贴添加两个实现进度条功能。

4.添加本地资源

1、在项目上右击—>【添加】—>【新建文件夹】—>命名为【雷工音频】。

华为手机怎样编辑录音_录音编辑软件教程_手机录音编辑软件

新增文件夹

2、在新建的文件夹上右击—>选择【在文件资源管理器中打开文件夹】。

华为手机怎样编辑录音_手机录音编辑软件_录音编辑软件教程

文件管理器

3.将要播放的音频复制到新建的文件夹中。

华为手机怎样编辑录音_手机录音编辑软件_录音编辑软件教程

文件夹

4. 单击[显示所有文件]按钮可以查看添加到文件夹中的音频文件。

手机录音编辑软件_华为手机怎样编辑录音_录音编辑软件教程

显示所有文件

5.选中添加的音频录音编辑软件教程,然后右击选择【打包到项目中】。

手机录音编辑软件_华为手机怎样编辑录音_录音编辑软件教程

项目中的包

6、这时候在添加音频的属性里面会有一个【复制到输出目录】

【不复制】表示输出不会复制到bin文件夹。

【Always copy】表示输出仍然会复制到bin文件夹。 在这里选择它。

手机录音编辑软件_华为手机怎样编辑录音_录音编辑软件教程

复制到输出目录

五、代码实现与分析

1.加载本地文件夹中的音频

主要代码如下:

/// 
/// 当前的播放列表
/// 
public static List list = new List();
/// 
/// 当前的文件路径
/// 
public static string path = Application.StartupPath + "/Leigong音频/";
public void LoadLocalHostMusic()
 {
	//每次加载之前清空原来的值
 	list = new List();
	this.listBox1.Items.Clear();
	//判断文件路径是否存在
if(!Directory.Exists(path))
 {
	//不存在则创建文件夹
 	Directory.CreateDirectory(path);
 }
//读取该文件夹下的所有文件
foreach(var item in Directory.GetFiles(path))
 {
	var temp = item.Split('/');
 	list.Add(temp[temp.Length-1]);
 }
this.listBox1.Items.AddRange(list.ToArray());
 }
private void Form1_Load(object sender, EventArgs e)
 {
	 LoadLocalHostMusic();
 }

2.播放按钮功能

主要代码:

private void button1_Click(object sender, EventArgs e)
 {
//获取当前音乐列表中选中的歌曲
	if(this.listBox1.SelectedIndex==-1)
 	{
	 MessageBox.Show("请选择要播放的音频!");
 	}
	else
	 {
 	axWindowsMediaPlayer1.URL = path + list[this.listBox1.SelectedIndex];
	 }
 }

3.暂停键功能

主要代码:

private void button2_Click(object sender, EventArgs e)
 {
 	axWindowsMediaPlayer1.Ctlcontrols.pause();
 }

4.继续按钮功能

主要代码:

private void button3_Click(object sender, EventArgs e)
 {
 	axWindowsMediaPlayer1.Ctlcontrols.play();
 }

5.上一曲按钮功能

主要代码:

private void button4_Click(object sender, EventArgs e)
 {
		if(this.listBox1.SelectedIndex==-1)
	 {
 	MessageBox.Show("请选择一首歌!");
 	}
	else
	 {
		//try...catch异常捕捉机制
			try
		 {
			this.listBox1.SelectedIndex--;
			//如果减减运算符得出了-1,那么-1传入List则报异常,因为下标从0开始
			 axWindowsMediaPlayer1.URL = path + list[this.listBox1.SelectedIndex];
		 }
		catch
 		{
 		MessageBox.Show("这已经是第一首了");
		this.listBox1.SelectedIndex = 0;
		 }
	 }
 }

6.下一曲按钮功能

主要代码:

private void button5_Click(object sender, EventArgs e)
 {
		if(this.listBox1.SelectedIndex==-1)
	 {
 		MessageBox.Show("请选择一个音频!");
	 }
	else
	 {
	try
	 {
	this.listBox1.SelectedIndex++;
	 }
	catch(Exception)
	 {
	this.listBox1.SelectedIndex = 0;
 	}
 axWindowsMediaPlayer1.URL = path + list[this.listBox1.SelectedIndex];
 }

7.通过定时器实现进度条功能

主要代码:

private void timer1_Tick(object sender, EventArgs e)
 {
		//只有是播放状态时,才更新进度
		if((int)axWindowsMediaPlayer1.playState==3)
		 {
				this.panel2.BackColor = Color.LightGreen;
				//当前进度
				double current = axWindowsMediaPlayer1.Ctlcontrols.currentPosition;
				//总长度
				double All = axWindowsMediaPlayer1.currentMedia.duration;
				//播放百分比
				double flag = current / All;
				int widths = (int)(flag * 438);
				 panel2.Size = new Size(widths, 27);
		 }
 }

8.添加音乐到播放列表功能

主要代码:

private void button6_Click(object sender, EventArgs e)
 {
		 OpenFileDialog ofd = new OpenFileDialog();
		//设置打开对话框的初始目录,默认目录为exe运行文件所在的路径
 		ofd.InitialDirectory = Application.StartupPath;
		//设置打开对话框的标题
	 ofd.Title = "[请选择要打开的文件]";
		//设置打开对话框只能单选
 		ofd.Multiselect = false;
		//设置对话框打开的文件类型
	 ofd.Filter = "图片文件|*.jpg|所有文件|*.*";
		//设置文件对话框当前选定的筛选器的索引
 		ofd.FilterIndex = 2;
		//设置对话框是否记忆之前打开的目录
 		ofd.RestoreDirectory = true;
		if(ofd.ShowDialog()==DialogResult.OK)
		 {
				//获取用户选择的文件的完整路径,然后copy文件
 				File.Copy(ofd.FileName, path + ofd.SafeFileName, true);
				//copy完成之后重新加载列表
 				LoadLocalHostMusic();
		 }
 }

9.从列表中删除选定的音频

主要代码:

private void button7_Click(object sender, EventArgs e)
 {
		if(this.listBox1.SelectedIndex==-1)
		 {
 		MessageBox.Show("请选择要删除的音频!");
 		}
		else
 		{
		string currpath = path + list[this.listBox1.SelectedIndex];
		//删除文件
 		File.Delete(currpath);
		//重新加载列表
 		LoadLocalHostMusic();
 		}
 }

10.模式切换

模式切换是通过改变窗体的背景颜色来实现的。

主要代码:

#region 模式切换
private void button8_Click(object sender, EventArgs e)
 {
		this.BackColor = Color.SkyBlue;
 }
private void button9_Click(object sender, EventArgs e)
 {
		this.BackColor = Color.Black;
 }
#endregion

杂记

以上就是学习Winform音频播放器制作的记录,有兴趣的朋友可以参考实践。

相关内容

热门资讯

大浪淘金APP黑幕揭秘:内盘操...   大浪淘金APP平台最隐蔽的黑幕,在于其完全封闭的内盘交易系统。这个看似与国际市场接轨的交易平台,...
告别固定工资实现财富自由?一品...   普通投资者被广告宣传诱导,注册就送现金,充值返现金券等等这些宣传方式,都是在引流到平台开户,不怕...
哈易购APP打着现货交易幌子搞...   网络上各类白银、铂金等贵金属投资广告铺天盖地,不少平台以"现货交易"为名,暗中却从事着非法期货交...
5元起投!高额收益?中国白银、...   上海华通白银国际交易中心有限公司(以下简称“华通白银国际”)打着“白银、铂金现货订购”的旗号,实...
"九州订购APP、起...   近年来,贵金属投资热度持续攀升,但乱象也随之而来。一些不法分子趁机搭建虚假交易平台,打着"低门槛...
坚锅淘金APP投资者频繁爆仓亏...   坚锅淘金APP对外宣称是贵金属现货交易平台,日常出入金看似畅通无阻,给人一种合规运营的假象。但事...
斗金订购APP“5元订购现货”...   斗金订购APP“5元订购现货”骗局揭秘:充值易、回本难,越陷越深!  许多投资人在未核实平台合规...
贵金属APP乱象曝光:&quo...   当前市场上部分贵金属类APP未取得正规交易资质,涉嫌误导消费者参与白银、铂金等商品的非合规交易!...
华通白银、银宝街APP被指虚假...   警惕现货白银投资陷阱:上海华通白银背后的平台涉嫌非法期货交易  近年来,各类现货白银交易平台以“...
充值送300,月入过万?别被量...   如今,网络上充斥着大量未经批准的贵金属及其他产品订购交易平台。这些平台普遍缺乏合法经营资质,却将...
鑫汇智投APP贵金属非法期货、...   鑫汇智投APP贵金属非法期货、人为控盘,大量投资者遭恶意收割  鑫汇智投APP长期以“低门槛、高...
矅光智策APP非法贵金属交易骗...   不少投资人在矅光智策APP上进行贵金属交易后出现了严重亏损。许多人在下载该平台时,根本不清楚其是...
飞鸽订购APP非法期货交易骗局...   飞鸽订购APP非法期货交易骗局,很多投资者根本没搞懂规则就盲目充值,买涨买跌跟买cai票一样!平...
天龙白银APP被操控的非法期货...   中小投资者在网络平台参与商品现货订购交易,表面看似合规合法,实则暗藏诸多难以察觉的风险。商品现货...
下载送试玩金?千万别碰!带你揭...   当前,许多贵金属APP交易平台正采用欺诈性营销手段。它们通过抖音等短视频平台,以“5元起投”“充...
泡泡淘金APP骗局:打着&qu...   泡泡淘金APP骗局:打着"商品订购"幌子,实则非法期货收割投资者!投资需谨慎,切勿轻信“高额回报...
南商云购APP虚假电子盘背后的...   南商云购是虚假电子盘吗?它是否具备合规的交易资质?这个曾经的"现货电子盘"如今摇身一变,披上了"...
警惕"祥龙订购&qu...   祥龙订购APP、掌上银牛APP等平台背后的运营方——四川禄宏商品现货市场有限公司,仅具备现货交易...
中国白银、华银:虚假宣传、后台...   中国白银APP宣称是上市公司“中国白银集团”与“上海华通白银国际交易中心”旗下的现货交易平台,提...
起底“优品订购”APP非法期货...   “优品订购”APP根本不具备任何合法的交易资质。其背后的运营方仅凭随便注册一家公司、开发一款交易...