表4-5折率表 含义 数据类型 会员级别 varchar(50) 打折率 varchar(50) 会员内码 varchar(50) 字段名称 cardtype Abate Viplogo 可否为空 YES YES NO (6) 开户点歌表(money)
开户点歌表主要用于存放用户消费时选择的包间类型、用户的会员等级、充值、开户时间及房间号。表结构如表4-6所示。
字段名称 roomnum roomtype cardtype Money userlogo Uncost begintime 表4-6开户点歌表 含义 数据类型 房间号 nvarchar(50) 包间类型 nvarchar(50) 会员等级 nvarchar(50) 充值金额 Float 用户内码 Int 消费金额 nvarchar(50) 开始时间 Datetime 可否为空 YES YES YES YES NO YES YES (7) 用户播放列表(likemusic)
用户播放列表主要方便用户存放自己喜欢的歌曲,其中包括歌曲名、歌手名、歌曲类型、歌曲名称数及歌曲路径。表结构如表4-7所示。
字段名称 gsname gqname Gqnum Gqtype Path Gqlogo 表4-7用户播放列表 含义 数据类型 歌手名称 varchar(50) 歌曲名称 varchar(50) 歌曲数 varchar(50) 歌曲类别 varchar(50) 歌曲路径 varchar(200) 歌曲内码 Int 表4-8歌曲类型表 含义 数据类型 类型内码 Int 类型名称 nvarchar(50) 可否为空 NO NO NO NO NO NO (8) 歌曲类型表(type)
字段名称 Lxlogo Lxname 可否为空 NO YES
11
5 系统详细设计
5.1 点歌系统主界面设计
5.1.1 界面设计
点歌系统主窗体是用来播放数据库内歌曲。主要可以实现用户对列表框内的歌曲进行下一首、上一首、增加音量、减小音量、快进、快退、全屏功能。管理员登录时的数据库操作及开户点歌功能。可以播放的音乐格式有mp3,wmv,wma格式,双击列表框内的歌曲进行歌曲的播放。
根据点歌系统主界面所要实现的功能,需要在界面上添加如下控件:windows media player,skinEngine,timer,toolstrip,button(按钮)控件。上一首按钮,就是为了实现上一首歌曲的播放;下一首按钮为了实现下一首歌曲的播放;增加音量按钮,就是为实现音量的增加;减小音量按钮,就是为了实现音量的增加,快进按钮是为了实现快进播放功能;快退按钮是为了实现快退功能;skinEngine是为了使界面运行时更美观。toolstrip控件是为了区别普通用户与管理员的登录。全屏按钮,就是为了实现屏幕的全屏播放,按歌曲查询按钮用来实现用户能够根据歌曲名称查询歌库内的歌曲,并双击选择歌曲添加到用户播放列表。其它控件可类似。各主要控件的属性如表5-1所示。
表5-1点歌系统主窗体主要控件属性 控件 属性 属性值 Name Form1 点歌系统(Form1) Text 点歌系统 Windows media player Button1 Button2 Button3 Button4 Button5 Button6 Button8 Button9 Button10 Button11 Button12 Button13 Button14 Button15 Name URL Text Text Text Text Text Text Text Text Text Text Text Text Text Text myplayer null 上一首 下一首 增加音量 减小音量 快进>> 快退<< 停止 播放/暂停 开户点歌 管理员设置 按歌曲类别查询 按歌曲名称查询 按拼音查询 按歌手查询 12
续表5-1
Button16 Text 清空播放列表 Button17 Label1 Label2 Text Text Text
己点歌播放列表 此时播放歌曲时间的当前进度 当前播放歌曲总时间 设计完成的安排工作界面如图5-1所示。
图5-1 点歌系统主界面
5.1.2 代码设计
13
(1) 当用户双击列表框内的歌曲时,将触发listView1_DoubleClick()事件,并且直接播放当前选中的歌曲,部分代码如下:
private void listView1_DoubleClick(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count > 0) {
myplayer.currentMedia=myplayer .newMedia (listView1 .SelectedItems [0].SubItems [3].Text );
string fname = this.listView1.SelectedItems[0].SubItems[3].Text; myplayer.URL = fname;
this.button9.Text = \暂停\ timer1.Enabled = true; } }
(2) 当用户当击上一首按钮时,系统将先判断当前选择行是不是第一行,如果为第一行则手动设置列表框中的最后一行下标为当前选中行,并设置其可见状态,可以让用户知道当前选中的歌曲,最后实现上一首歌曲的播放,代码如下:
private void button1_Click(System.Object sender, System.EventArgs e)//上一首 { int a = this.listView1.Items.Count - 1; try {
if(this.listView1.SelectedItems.Count>0&&this.listView1.Items.Count > 0) {
if (listView1.SelectedItems[0].Index <= this.listView1.Items.Count - 1 && this.listView1.Items.Count > 1 && this.listView1 .SelectedItems [0].Index >0) { index = listView1.SelectedItems[0].Index;
myplayer.URL=listView1.Items[listView1.SelectedItems[0].Index-1].SubItems[3].Text; listView1.Items[index].Selected = false; listView1.Items[index - 1].Selected = true; listView1.Focus(); }
else { listView1.Items [0].Selected = false; listView1.Items[a ].Selected = true;
listView1.Focus();
myplayer.URL=this.listView1.Items[a].SubItems[3].Text; } } else { MessageBox.Show(\列表中没有歌曲!\ } } catch { }}
(3) 当用户当击下一首按钮时,系统将先判断当前选择的行是不是最后一行,如果为最后一行则手动设置列表框中的第一行为当前选中行,并设置其可见状态,可以让用户知道当前选中的歌曲,然后再实现下一首歌曲的播放,代码如下:
int index = 0;
private void button2_Click(System.Object sender, System.EventArgs e) { try {
14
if (this.listView1.SelectedItems.Count > 0 && this.listView1.Items.Count > 0) {
if(listView1.SelectedItems[0].Index
index = listView1.SelectedItems[0].Index;
myplayer.URL = listView1.Items[index + 1].SubItems[3].Text; listView1.Items[index].Selected = false; listView1.Items[index + 1].Selected = true; listView1.Focus(); } else{
listView1.SelectedItems[0].Selected = false;
listView1.Items[0].Selected = true; listView1.Focus();
myplayer.URL = this.listView1.Items[0].SubItems[3].Text; } } else { MessageBox.Show(\列表中没有歌曲!\ } catch{ } }
(4) 当用户当击增加音量按钮时,系统会调用播放器控件的增加音量事件,使播放器增加音量,部分代码如下:
keybd_event(175, 0, 0, 0);//增加音量
(5) 当用户单击减小音量按钮时,系统会调用播放器控件的减小音量事件,使播放器降低音量,部分代码如下:
keybd_event(174, 0, 0, 0);
(6) 当用户单击快进按钮时,系统调用播放器控件的fastForward()方法,使播放器实现快进的功能,部分代码如下:
myplayer.Ctlcontrols.fastForward();//快进
(7) 当用户单击快退按钮时,系统调用windows media player 控件的fashReverse()方法,使播放器实现快退的功能,部分代码如下:
myplayer.Ctlcontrols.fastReverse();
(8) 当用户单击停止按钮时,系统调用播放器控件的stop()方法,并且停止时间控件的运行,使其可用状态设为false,手动拖动条值设为0,使播放器实现停止播放的功能,部分代码如下:
timer1.Enabled = false; myplayer.Ctlcontrols.stop(); trackBar1.Value = 0; button9.Text = \播放\
(9) 用户单击按歌曲类别查询时,将弹出歌曲类别查询窗体。本系统设计了一个歌曲
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库媒体音乐播放器的设计与实现—毕业论文(4)在线全文阅读。
相关推荐: