音乐播放器之知识总结与难点分析

知识总结

-添加控件
-获取目录
-切割字段
- 比较大小

难点分析

-控件之间关联
-播放顺序
-播放功能
-MediaPlayer的属性练习

知识总结

添加控件

我们开发音乐播放器的时候我们用到的控件有
1.Windows Media Player
这是一个Windows 自带的一个控件,我们可以在VS中通过引用COM组件来实现控件的添加,具体过程: 工具箱->公共组件->右击”选择项”->COM组件下边的Windows Media Player,之后我们发现公共控件中就可以添加这一个控件
2.Button
Button 控件我们简称为按钮控件,按钮控件是我们最常用的一个控件,与大部分的控件类似,按钮控件有Name属性,Text属性,背景Image属性,最常用的事件为点击事件,也就是Click事件
3.ListBox
ListBox控件,类似与一个容器,同时和我们之前学习的 list<>类也十分相似,它可以在其上显示一系列内容,这里我们是用来显示歌曲名字
4 Timer
Timer控件是定长时间段产生事件的一个控件,其默认情况下Enabled为True,时间间隔属性Interval ,表示事件发生频率,以毫秒为单位.

获取目录

如果想要获取某一路径下的一个子目录,我们就需要介绍一下OpenFileDialog类
此类是用户查看打开文件用的,不能被继承,属性Multiselect 表示打开的文件目录,是否可以多选,True为多选 ;Title 代表打开目录的提示,Filter属性是选择要查询的文件后缀名类型代码格式如下
OpenFileDialog ofd = new OpenFileDialog();//打开文件
ofd.Multiselect = true;//可以多选
ofd.Title = “请选择音乐我文件”;//设置选择什么样的文件
//设置初始的目录
ofd.InitialDirectory = @”E:\KuGou”;
ofd.Filter = “(.mp3)|.mp3|(.jpg)|.jpg
由于这个类的属性属于非静态属性,所以我们必须实例化才能用到他的属性,其中InitialDirectory 是表示初始的文件目录,当然我们可以给一个其他的路径,这里是我们存放歌曲的路径
if (ofd.ShowDialog()==System .Windows .Forms .DialogResult .OK )
{
string[] fileName =ofd.FileNames;//获取路径
}
上俩行代码打开一个目录,并将选中的子目录放置 fileName中,其中的ofd.ShowDialog() 表示运行通用对话框,也就是弹出能选择文本的框

切割字段

承接以上获取的目录路径,我们需要分割路径才能够获得所需要的字符串,比如歌曲名,这里我们就需要了解String 字符串的方法
1string.length,字符串长度
2string.split();
切割字符串,这个方法有很多的重载,我们可以切去字符串的特定符号,而且删除空格
3string.LastIndexOf()
括号里面既可以放入字符,也可以放入字符串,返回查询内容最后的索引值
4string.Substring
截取字符串中的子字符串,从低下标索引到高下标索引的子字符串.

比较大小

比较大小分为字符串比较大小,我们这个播放器项目中,添加歌词,我们要对事件流信息进行排序,这时我们就对其中的字符串进行比较大小
string.compare(string1,string2);
返回一个值,string1大于string2,返回1,相等返回0,小于返回-1;

难点分析

控件之间关联

控件之间的关系因人而异,由于设计思路的不同,以及开发方式的差异,空间之间如何能相互关联起来的方法,就显得比较多了,我就简单说一下我的关联情况

1ListBox 承接ofd 查询歌曲名字,并切割后的字符串,最后将歌曲名字添加到了ListBox当中.
2 歌词
我是采用button 来显示歌词,原因,button有背景图片,我们可以对button的属性进行设计,这样的效果是能够与form背景颜色进行融合.如下所示.

播放顺序

播放顺序也就是软件从开始的执行顺序
1 Main函数出发,=>定义全局变量,歌曲存放路径=>初始化Form1=>Form1加载事件,里边包含将一些按钮控件的Enabled属性设置为False.=>Timer时刻在运行,=>可以点击各种按钮,出发事件;

播放功能

1 音乐播放功能
音乐播放功能依赖与Windows Media Player 的一个属性,URL属性,只要给这个属性赋一个歌曲路径值,就可以播放
2 上一曲,下一曲功能
上一曲下一曲是对listBOx中的Item进行操作,也是click事件,我们可以根据listConpenon.selectedIndex来确定哪一个歌曲处于被选中状态,这样就可以我们通过索引来找到下一首歌曲的索引,从而通过索引来播放与之对应的歌曲.
当然值得注意的是:对list 界限的判断,单到达最后一个索引后,要返回第一个,,同时在我们建立歌曲List的时候,我们需要同步的将歌曲名字放入List中,这样我们就可以同步的对歌曲名和歌曲路径进行操作.
3 静音,音量加减
对声音的控制是依靠Windows Media Players 的一个属性来确定的分别为
musicPlayer.settings.mute = true//静音,当然false 代表取消静音
musicPlayer.settings.volume += 10;//是对音量值进行设置的.

C#学习之音乐播放器相关推荐

  1. html5学习之音乐播放器的结构整理

    花了一点时间 整理下昨天的播放器,将结构优化了点,方便今后维护和扩展. 如昨天的想法一样,又添加了播放/暂停的切换按钮和随机切换. 另外的界面样式以及歌曲显示部分 暂时没空搞了. 思路如下:再添加一个 ...

  2. Android应用--简、美音乐播放器原型放送(作者:小巫)

    Android应用--简.美音乐播放器原型放送 2013年7月5日简.美音乐播放器开发 前言:小巫的简.美音乐播放器从5月7号开始开发,之前以为时间很充足,也没有估量整个软件的需求,如果简单实现基本的 ...

  3. Android应用--简 美音乐播放器原型放送(作者 小巫)

    Android应用--简.美音乐播放器原型放送 2013年7月5日简.美音乐播放器开发 前言:小巫的简.美音乐播放器从5月7号开始开发,之前以为时间很充足,也没有估量整个软件的需求,如果简单实现基本的 ...

  4. 【51单片机学习笔记】基于STC11F04E的蜂鸣器音乐播放器

    微型播放器                                     --基于STC11F04E的蜂鸣器控制 青岛科技大学 信息科学技术学院 集成162 Listen C 一.简介 1. ...

  5. Qt5学习 模仿qq音乐播放器样式(2)——点击动画效果+歌词颜色变换展示

    拖的太久,主要再上一篇文章中,新学习了相关知识,做了右键菜单,点击按钮动画切换窗口和播放时歌词颜色显示当前播放位置. 主要为了实现功能的展示,所以很多文件读取都直接采用了本地文件这种比较low的方式. ...

  6. 移动应用开发——uni-app框架 仿网易云音乐播放器学习心得

    目录 一.uni-app框架介绍 1.什么是 uni-app 2.为什么要选择uni-app 3.uni-app 统一规范 4.uni-app功能框架 二.开发工具与项目创建 1.开发工具 2.项目创 ...

  7. 安卓学习期末大作业——音乐播放器基础功能

    步骤 系列文章 前言 1.实现效果 2.关于自动切到后台 3.给予权限访问本地音乐,如果本地指定文件夹没有音乐会无法运行 4.注意配置jdk11 下载资源 总结 系列文章 提示:转到安卓学习专栏,观看 ...

  8. 学习笔记:在WIN11及UBUNTU平台下的基于Tkinter、pydub、pyaudio的音乐播放器

    目录 一.总述 二.文件结构 三.打包方式 四.使用pydub进行音乐播放 main2.py all_music.py show2.py 五.pydub使用中遇到的一些问题 六.新的尝试--pyaud ...

  9. C#学习 winform实现简单音乐播放器

    C#学习 winform实现简单音乐播放器 窗体设计 代码实现 using System; using System.Collections.Generic; using System.Compone ...

最新文章

  1. 卧槽!阿里《算法进阶指南》火了,完整版 开放下载!
  2. git add 之后因为没提交正确文件需要撤销
  3. Java程序员从笨鸟到菜鸟之(一百零七)一步一步学习webservice(一)开篇
  4. python编程django遇到问题Passing a 3-tuple to include() is not supported.解决方案
  5. jvm性能调优实战 - 38System.gcy引发的惨案
  6. 【一周一算法】算法2:邻居好说话——冒泡排序
  7. php 实现图片上传并压缩功能
  8. TortoiseGit 基础5部曲
  9. 电子科技大学研究生计算机与科学,2019年电子科技大学计算机科学与工程学院考研复试分数线...
  10. 通过ODBC实现ACCESS与SQL数据互导(临安人才网 )
  11. 跨域访问被禁止的演示示例
  12. Windows Azure Web Site (17) 设置Web App TimeOut时间
  13. java输出输入的日期_Java编写的日历,输入年月,输出这个月的日期与星期
  14. 大数据分析对企业起到什么作用
  15. python 操作access数据库
  16. mysql之魔鬼训练营
  17. ILI9341的使用之【五】命令一
  18. 湿冷天扫除前挡玻璃视障 应该怎么选?
  19. Meltdown:Reading Kernel Memory from User Space 论文中英对照
  20. Android 组件化方案 JIMU 体验

热门文章

  1. 拉手网的话题检测与跟踪
  2. IntelliJ IDEA 自定义注释模板配置
  3. 索引(B+树)、B+树一个节点有多大?(一千万条数据,B+树多高?)
  4. 这个夏天,我在网上学日语
  5. Java百度地图教程:创建地图应用与基本API的使用
  6. 李宏毅机器学习2021作业6(又名辉夜大小姐与辉夜大筒木的关系)
  7. Exchange 2010 SP1升级Exchange2010 SP3
  8. 什么是计算机主板芯片组,什么是Intel 4系列芯片组ICH7主板,支持哪些CPU?
  9. 腾讯云网站备案时常见驳回原因及解决办法
  10. Spring2.5+Struts1.3.8+JPA(Hibernate实现)整合之三