第五篇——Spring音乐播放界面设计(C#)
由于小组成员已经完成软件的详细设计说明书,在这里只具体说明软件程序的细节编写,以免重复。
歌曲的播放采用VS自带的axWindowsMediaPlayer插件,所以程序中涉及到许多该插件的使用。Ctlcontrols属性是AxWindowsMediaPlayer的一个重要属性, 此控件中有许多常用成员。下面是常用的几个,除了4和5在该音乐播放器中不需要用到,其他几个方法均需要。
(1) 方法play
用于播放多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.play()
如: AxWindowsMediaPlayer1.Ctlcontrols.play()
(2) 方法pause
用于暂停正在播放的多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.pause()
如: AxWindowsMediaPlayer1.Ctlcontrols.pause()
(3) 方法stop
用于停止正在播放的多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.stop()
如: AxWindowsMediaPlayer1.Ctlcontrols.stop()
(4) 方法fastforward
用于将正在播放的多媒体文件快进,其格式为:窗体名.控件名.Ctlcontrols.fastforward()
如:AxWindowsMediaPlayer1.Ctlcontrols.forward()
(5) 方法fastreverse
用于将正在播放的多媒体文件快退,其格式为:窗体名.控件名.Ctlcontrols.fastreverse()
如:AxWindowsMediaPlayer1.Ctlcontrols.fastreverse()
(6) 属性CurrentPosition
用于获取多媒体文件当前的播放进度,其值是数值类型,使用格式为:窗体名.控件名.Ctlcontrols.currentPosition
如d1=AxWindowsMediaPlayer1.Ctlcontrols.currentPosition 其中d1 是一个整型变量。
(7) 属性Duration
用于获取当前多媒体文件的播放的总时间,其值为数值类型,其使用格式为:窗体名.控件名.currentMedia.duration
如:d2=AxWindowsMediaPlayer1.currentMedia.duration (其中d2是一个整型变量)。
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
基本属性
URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini,None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
********************************************************************

根据Spring音乐播放器的可行性分析和需求分析,确定软件播放界面具体需要实现功能如下:
1.添加歌曲并播放;
编写函数,利用URL指定媒体位置,此处媒体位置为本机D盘,根据路径播放歌曲;将歌曲名显示在标题label中;在listBox中插入歌曲名;用一个数组存储每首歌曲的文件信息。
//播放
public void play(string namepath)
{
timer4.Enabled = false;
this.axWindowsMediaPlayer1.URL = namepath;
musicname.Text = this.axWindowsMediaPlayer1.currentMedia.name;//标题显示歌曲名
this.listBox1.Items.Insert(, musicname.Text);
getNum();
timer3.Enabled = true;
getmusicTime();
}
2.暂停,停止播放;
使用方法play,pause,stop即可控制暂停和停止播放,进行播放操作的时候,控制计时器。
//暂停、继续播放
private void onpause_Click(object sender, EventArgs e)
{
if (plays == false)
{
this.axWindowsMediaPlayer1.Ctlcontrols.play();
timer3.Enabled = true;
plays = true;
}
else
{
this.axWindowsMediaPlayer1.Ctlcontrols.pause();
timer3.Enabled = false;
plays = false;
}
}
//停止、继续播放
private void onstop_Click(object sender, EventArgs e)
{
if (plays == false)
{
this.axWindowsMediaPlayer1.Ctlcontrols.play();
timer3.Enabled = true;
plays = true;
}
else
{
this.axWindowsMediaPlayer1.Ctlcontrols.stop();
timer3.Enabled = false;
plays = false;
}
}
3.播放上一曲,下一曲;
将music以数组形式存储,播放的时候按数组名加减播放即可。
//上一首
private void previousmusic_Click(object sender, EventArgs e)
{
musicNum--;
try
{
play(names[musicNum]);
}
catch (Exception)
{
musicNum += ;
}
} //下一首
private void nextmusic_Click(object sender, EventArgs e)
{
musicNum++;
try
{
play(names[musicNum]);
}
catch (Exception)
{
musicNum -= ;
}
}
4.滚动显示歌曲名;
musicname.Text = this.axWindowsMediaPlayer1.currentMedia.name;// musicname为显示歌曲名的label名;获取歌曲播放时间,根据时间改变歌曲名label显示位置(Location)即可。
5.生成歌曲列表并自动排序;
使用this.listBox1.Items.Insert(0, musicname.Text);//在listBox中插入歌曲名;将listBox属性设置为Sort即可自动排序。
6.可从歌曲列表中播放歌曲;
在listbox中每首个对应的位置添加按钮或者label隐藏,当点击listbox中不同歌曲时,相当于点击对应的按钮,对按钮_Click进行编程,每次点击就播放对应位置的歌曲,歌曲名的位置根据listbox中的排序位置确定(具体实现仍有待实现)。
第五篇——Spring音乐播放界面设计(C#)的更多相关文章
- 第四篇——Spring音乐登录界面设计及实现(C#)
Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中:如果已有用户名,输入用户名和密码,点击登录,程序会 ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告三、四
3 对现有系统的分析 由于本次可行性分析主要是建立在团队自行实现一个音乐软件的目标上,并不是在一个现有系统的基础上开发改进的新系统.因此这里将分析一款市面上已经存在的音乐软件(以下称为W音乐),并为之 ...
- SE Springer小组之《Spring音乐播放器》需求分析说明书一
软件需求说明书 软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础. 1 引言 1.1编写目的 使用户对该软件的初始规定有一个理解,也使软 ...
- SE Springer小组《Spring音乐播放器》软件需求说明之四
4 运行环境规定 4.1设备 我们计划完成的音乐软件较小巧,功能并不复杂,在普通笔记本电脑中即可运行,并无特殊硬设备要求. 4.2支持软件 需要用到windows操作系统,用VS编写C/C++代码,还 ...
- SE Springer小组之《Spring音乐播放器》需求分析说明书二
2.1 目标 Spring音乐播放器软件为课程<软件工程>所开发的课程作业,主要意图是为访问计算机中的mp3格式的音频文件,并使其能够完成访问,读取,添加,保存,播放,切换音频文件等功能. ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告一、二(转载)
此文转载自组员小明处~~ 1 引言 1.1编写目的 <软件工程>课程,我们团队计划开发一个音乐播放器.本文档是基于网络上现有的音乐播放器的特点,团队计划实现的音乐播放器功能和团队 ...
- SE Springer小组《Spring音乐播放器》可行性研究报告一、二
1 引言 1.1编写目的 <软件工程>课程,我们团队计划开发一个音乐播放器.本文档是基于网络上现有的音乐播放器的特点,团队计划实现的音乐播放器功能和团队人员的综合实力等情况,说明该软件开发 ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告五、六
5 可选择的其他系统方案 曾经考虑过制作闹钟系统,但考虑到闹钟系统在电脑应用中极其不实用,所以此方案未通过. 6 投资及效益分析 6.1支出 本软件只用于完成课程学习要求,不用做商用,无基础设备等支出 ...
- Android简易实战教程--第三十五话《音乐播放》
已经好几天不更新博客了,今天轻松一点模拟个简单的"音乐播放器".1分钟看完~ 整个简单布局,加几个控制按钮: <LinearLayout xmlns:android=&quo ...
随机推荐
- Netty入门(四)ByteBuf 字节级别的操作
Netty 中使用 ByteBuf 代替 Java NIO 提供的 ByteBuffer 作为字节的容器. 一.索引 ByteBuf 提供两个指针变量支持读和写操作,读操作使用 readerInde ...
- Hadoop安装教程【转】
原贴:http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...
- WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore
影像存储类ImageStore 影像存储类ImageStore提供了计算本地影像路径和远程影像影像URL访问的各种接口,是WmsImageStore类和NltImageStore类的基类.当划分完层次 ...
- CSS3页面布局方案
CSS3页面布局方案 Web页面中的布局,在css3之前,主要使用float属性或者position属性进行页面中的简单布局,但是使用它们也存在一些缺点,比如两栏或者多栏中如果元素的内容高度不一致,则 ...
- Android 绘图时实现双缓冲
一.双缓冲技术原理: 在内存中创建一片内存区域,把将要绘制的图片预先绘制到内存中,在绘制显示的时候直接获取缓冲区的图片进行绘制.更具体一点来说:先通过setBitmap方法将要绘制的所有的图形绘制到一 ...
- Java java.text.ParseException: Unparseable date
用java将字符串转换成Date类型是,会出现java.text.ParseException: Unparseable date异常. 例如下面的这段代码就会出现上面的异常: public bool ...
- kubernetes 生命周期问题分析
1.Failed -- pod里至少一个容器以非0code退出,说明应用有问题,需要debug应用容器 2.pending -- 说明API对象已经被创建和保存在etcd数据库里,但是创建过程出了问 ...
- day79
昨日回顾 昨日回顾: cookie: -是什么?存储在客户端浏览器上的键值对 -干啥用的?记录状态 -django中使用: -设置值: -HttpResponse对象,obj.set_cookie(k ...
- abp 将abp项目发布之后挂在IIS上无法访问嵌入资源的问题
在本地调试是能够正常访问到写在另一个程序集中的嵌入资源,但是发布之后 挂在IIS上却不能访问. 整了半天没找到原因.后来发现是发布时配置错误造成的:取消勾选precompile during publ ...
- 微信小程序开发 [03] 事件、数据绑定和传递
1.事件绑定 在微信小程序中,事件的绑定依附于组件,当事件触发时,就会执行事件对应的处理函数. 我们回到前几章中的例子,将index页面调整为首页(app.json中调整pages数组元素的顺序),此 ...