基于C#制作一个音乐播放器
此文主要基于C#制作音乐播放器,可实现导入本地歌曲、音乐播放、音量设置、歌词显示等。
- 实现流程
- 1.1、创建项目
- 1.2、准备素材
- 1.3、功能开发
实现流程
1.1、创建项目
- 打开Visual Studio,右侧选择创建新项目。
- 搜索框输入winform,选择windows窗体应用,填写对应的保存路径点击下一步,创建成功后如下图。
- 将Form1的FormBorderStyle属性设置为None,这时窗体效果则由下图1变成了图2的样子。
1.2、准备素材
需要准备一些平常喜欢听的歌曲,mp3格式的就行,如果需要歌词展示的话还需要准备lrc格式的文件。
1.3、功能开发
在工具箱拖拽出一个listview控件,用于歌曲列表的展示,序号跟歌名两列通过columnHeader属性设置。
添加一个button按钮控件,实现添加歌曲的功能。
实现一个自定义函数,将用户选择的歌曲填充到listview中。
public void addLocalSong(string[] files){XmlDocument xd = new XmlDocument();xd.Load(Directory.GetCurrentDirectory() + "\\data\\" + "music.xml");XmlElement xe = xd.DocumentElement;int i = xe.ChildNodes.Count;foreach (string str in files){i++;XmlNode x = xd.CreateElement("path");x.InnerText = str;xe.AppendChild(x);string[] t = { i.ToString(), Path.GetFileNameWithoutExtension(str) };ListViewItem lvi = new ListViewItem(t);this.listView1.Items.Add(lvi);}xd.Save(Directory.GetCurrentDirectory() + "\\data\\" + "music.xml");}
双击上传歌曲的button控件,调用上面所定义的函数,这里需要限制用户选择文件的后缀为mp3格式。
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "音乐|*.mp3";
ofd.Multiselect = true;
ofd.Title = "本地歌曲添加";DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{addLocalSong(ofd.FileNames);
}
再拖拽几个button按钮到窗体上来,修改其text显示的同时给播放按钮增加点击事件。
/// <summary>/// 播放或暂停歌曲/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){if (this.now_music_id == -1)return;if (this.button2.Text == "播放" && this.trackBar1.Value < (this.trackBar1.Maximum - 2)){this.timer1.Enabled = true;this.Mp3Player.Ctlcontrols.play();this.button2.Text = "暂停";}else if (this.button2.Text == "播放" && this.trackBar1.Value >= (this.trackBar1.Maximum - 2)){this.timer1.Enabled = true;this.button2.Text = "暂停";this.PlayModeChange();}else {this.timer1.Enabled = false;this.Mp3Player.Ctlcontrols.pause(); this.button2.Text = "播放"; }}
给listview也增加事件,实现双击播放歌曲的效果。
if (this.listView1.SelectedItems.Count == 0)return;this.button2.Text = "暂停";this.timer1.Enabled = true;ListViewItem lvi = this.listView1.SelectedItems[0];//MessageBox.Show("双击");this.label3.Text = this.listView1.SelectedItems[0].SubItems[1].Text;this.label3.Text = lvi.SubItems[1].Text;if (this.label3.Text.Length > 15)this.label3.Text = this.label3.Text.Substring(0, 13) + "..";this.label3.Location = new Point((int)(this.panel1.Width / 2 - this.label3.Width / 2), this.label3.Location.Y);this.now_music_id = Convert.ToInt32(lvi.SubItems[0].Text) - 1;XmlDocument xd = new XmlDocument();xd.Load(Directory.GetCurrentDirectory() + "\\data\\" + "music.xml");string filename = xd.DocumentElement.ChildNodes[this.now_music_id].InnerText;this.musicPlay(filename);string lrc_filename = Path.GetDirectoryName(filename) + "\\" + Path.GetFileNameWithoutExtension(filename) + ".lrc";if (File.Exists(lrc_filename)){loadLrc(lrc_filename); }else{this.richTextBox1.Text = "歌词文件不存在";}
界面左侧拖拽一个richTextBox,用于歌词的展示。
在播放按钮以及listview双击事件中都调用一个加载歌词的自定义函数,使用FileStream时需要配置utf-8的格式,否则歌词可能会乱码。
在窗体底部增加一个trackBar控件,用于歌曲进度条的控制。
实现歌曲进度条滚动变化事件处理的函数。
if (this.now_music_id == -1)return;this.Mp3Player.Ctlcontrols.currentPosition = this.trackBar1.Value;this.label1.Text = this.Mp3Player.Ctlcontrols.currentPositionString;if (this.trackBar1.Value >= (this.trackBar1.Maximum - 2) && this.button2.Text == "暂停"){this.PlayModeChange();}
定义一个透明窗体,用于歌词显示。
再次增加一个trackbar控件,用于控制音量。
private void trackBar2_Scroll(object sender, EventArgs e)
{if (this.now_music_id == -1)return;this.Mp3Player.settings.volume = this.trackBar2.Value;
}
有兴趣的可以在此基础上进行一些功能完善,例如增加一些歌曲循环或随机播放等。
基于C#制作一个音乐播放器相关推荐
- 使用小程序制作一个音乐播放器
此文主要通过小程序制作一个音乐播放器,实现轮播.搜索.播放.快进.暂停.上一曲.下一曲等功能. 一.创建小程序 二.设计页面 三.接口渲染 一.创建小程序 访问微信公众平台,点击账号注册. 选择小程序 ...
- 基于React开发一个音乐播放器
同时支持 Mac 与 Windows 系统. 下载地址 掘金链接 项目使用 electron 作为外壳,webpack 作为打包工具,核心技术包括 React + Redux + React-rout ...
- 23|VS2017 基于MFC 做一个音乐播放器,带音量调节,切换歌曲
最近接到个小任务,用MFC做一个音乐播放器,不过这也是一直想尝试的,于是今天早上9点到下午16:00,总算是完成了需要的功能 开门见山,先展示一下整体界面 下面按照功能模块介绍我做这个播放器的过程 预 ...
- 基于STM32制作的音乐播放器,用PWM控制蜂鸣器
目录 效果展示 前言 一.设计背景 1.1.知识储备 二.系统设计方案 2.1.实现功能 2.2.硬件部分 2.3.软件部分 三.软件设计 3.1.设计流程图 3.2.音乐频率的设置 3.3.编程主要 ...
- ssRender引擎 制作一个音乐播放器
效果 操作流程 创建节点设置属性 节点名称 节点数量 Layer 1 Item 10 SeqImage 1 Button 7 节点名称 Preview显示情况 bg 绿色长方形背景图 ZZ1.ZZ2. ...
- 【51单片机学习笔记】基于STC11F04E的蜂鸣器音乐播放器
微型播放器 --基于STC11F04E的蜂鸣器控制 青岛科技大学 信息科学技术学院 集成162 Listen C 一.简介 1. ...
- (附源码)springboot+基于微信小程序音乐播放器的设计与实现 毕业设计271156
Springboot音乐播放小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的音乐播放器,系统为人们提供了方便快捷.即用即搜的音乐搜索播放服务,包括音乐资讯.音乐库推荐.交流论坛.注册登录.最 ...
- 基于FPGA设计的音乐播放器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 基于FPGA设计的音乐播放器 一.生成PCM音频格式的音乐文件 1.PCM音频文件格式 2.Matlab读取WAV文件 二. ...
- 基于Android的手机音乐播放器的设计与实现
源码及论文下载:http://www.byamd.xyz/tag/android/ 摘 要 随着Android系统和移动互联网的快速崛起,手机已经成为人们生活不可缺的一部分,在现代人的生活中,人们生活 ...
最新文章
- 嵌入式开发入门(2)
- antd 侧边栏如何自适应高度
- 串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑
- 搭建docker私有仓库
- MySQL5.6 Waiting for Commit Lock
- mysql select 反选_JQuery实现全选、全不选和反选功能
- 计算机网络----wireshark抓包
- 工具杂记-notepad++正则表达式匹配替换
- srsLTE源码学习:网络附属存储抓包nas_pcap.h
- R语言︱情感分析—词典型代码实践(最基础)(一)
- 编程之美 1.4买书问题常数时间空间解法
- 解压文件--linux
- c语言简单系统实例,简单的c语言编程实例
- 云课堂智慧职教计算机作业答案,云课堂智慧职教毛概作业答案
- 水星路由器DNS服务器未响应,为什么新版水星路由器不能上网
- CANoe.Diva之cdd文件配置
- 打游戏经常有人喷,刷个B站还是有?Python实现在网站上自动评论!键盘侠都喷不赢你!
- Aria2使用详细教程
- 语音(识别)处理教程
- 将文件保存到fpga