北大青鸟KTV项目播放原理 指导老师:袁玉明

第一步:

创建一个Song类

//歌曲名称

public  string SongName { get; set; }

//歌曲路劲

public string SongPath { get; set; }

第二步:

创建一个ListSong类

//存储要播放的歌曲

public static  List<Song> list = new List<Song>();

public static int SongIndex = 0;//当前播放的歌曲在集合中的索引

/// <summary>

/// 把歌曲添加到List集合中

/// </summary>

public static void AddSong(Song song)

{

list.Add(song);

}

/// <summary>

/// 获得播放的歌曲

/// </summary>

public static Song GetPalySong()

{

if (list.Count > 0)  àà判断集合中是否是元素

{

if (list.Contains(list[SongIndex]))   //看集合中是否包含list[SongIndex]这首歌

{

return list[SongIndex];

}

}

return null;

}

/// <summary>

/// 获取下一首播放歌曲的名字

/// </summary>

/// <returns></returns>

public static string GetNextSongName()

{

string name=string.Empty;    //定义一个name字段,接受要播放下一首歌曲的名称

if (list.Count>1)     //集合中的元素必须大于1才能获取下一首歌曲的名称

{

name = list[SongIndex + 1].SongName;

}

return name;

}

/// <summary>

/// 播放下一首

/// </summary>

public static void MoveOn()

{

//判断当前的歌曲不等于空并且播放歌曲的状态不是重播的情况下就执行SongIndex++,从而实现播放下一首歌曲

if (list[SongIndex] != null && list[SongIndex].Sate == Sateze.again)

{

list[SongIndex].ChagenSate();

}

else

{

SongIndex++;

}

}

第三步:

在点击DataGirlView控件中的一首歌曲时,

//创建一个Song类对象

Song song = new Song();

//获取歌曲名称

song.SongName = this.dataGridView1.SelectedRows[0].Cells[3].Value.ToString();

//获取歌曲路劲

song.SongPath = this.dataGridView1.SelectedRows[0].Cells[2].Value.ToString();

/调用ListSong中的AddSong方法给集合中添加数据

ListSong.AddSong(song);

第四步:

在主窗体FrmMain中定义一个Song类对象,接受要播放的歌曲

private Song song;//当前播放的歌曲

//定义一个方法播放要播放的歌曲

/// <summary>

/// 播放歌曲

/// </summary>

public void LoadPalyedSong()

{

this.song = ListSong.GetPalySong();//调用ListSong类中的GetPalySong方法,

if (song!=null)

{

this.song.ChagenSate();     //改变歌曲的状态

axWindowsMediaPlayer1.URL = @"E:\KTV\song\" + this.song.SongPath;  //:播放器播放的路劲

this.textBox1.Text = this.song.SongName;   //当前播放的歌曲名称

this.textBox2.Text = ListSong.GetNextSongName();   //调用ListSong类中的GetNextSongName方法获取下一首歌曲的名字

}

}

在主窗体FrmMain中有一个Timer空间,它有一个Tick事件,在它的事件中有这样几句代码

if (song==null)     //强行将song置为空,为了播放歌曲

{

LoadPalyedSong();

}

//播放下一首歌曲                      判断播放器空间的状态为停止时

if (axWindowsMediaPlayer1.playState==WMPLib.WMPPlayState.wmppsStopped)

{

song = null;     //将song置为空,song指向下一首歌曲

ListSong.MoveOn();     //调用ListSong类中的MoveOn方法播放下一首歌曲

}

第五步:

将从DataGirlView空间中选择的歌曲添加到ListView控件中

this.listView1.Items.Clear();   //首先清空一下ListView控件

foreach (Song item in ListSong.list)  //遍历整个集合

{

ListViewItem lvitem = new ListViewItem(item.SongName);

lvitem.SubItems.Add(item.SongPath);

string sate = item.Sate == Sateze.unPaly ? "未播放" : "已播放";

lvitem.SubItems.Add(sate);

this.listView1.Items.Add(lvitem);   //绑定到ListView控件中

}

时间: 2024-10-12 04:17:16

北大青鸟KTV项目播放原理 指导老师:袁玉明的相关文章

MyKtv项目 S1293 安孟阳 指导老师 :原玉明

MyKtv项目  S1293 安孟阳    指导老师 :原玉明 My ktv 项目需要实现的功能有: 显示点歌模式(歌手点歌.分类点歌.拼音点歌.排行榜.字数点歌),显示示系统功能(当前播放.下一首.重唱.切歌.播放列表.服务.退出). 1.1.1. KTV主界面 显示点歌模式(歌手点歌.分类点歌.拼音点歌.排行榜.字数点歌),显示示系统功能(当前播放.下一首.重唱.切歌.播放列表.服务.退出). 1.1.2. 歌手点歌 首先选择歌手性别(男.女.组合),然后显示歌手分类(大陆.香港.台湾.欧美

KTV歌曲播放原理

歌曲播放原理 一开始要有一个Song类,在类外面定义枚举,在里面放四种状态, 为:已播放,未播放,重唱,切歌 在类里把歌曲名称和路径封装成字段 起初每首歌的状态默认为未播放 通过MadeSongPlayed(),MadeSongAgain(),MadeSongCut()这几种方法 可以实现分别将歌曲状态改为已播放,重唱,切歌的功能 当你在歌曲列表页面想要点击播放一首歌的时候 因为现在的歌曲名和歌手只是两个字符串,所以你要先创建一个歌曲对象 此外,还要在PlayList类里写一个方法获取当前播放的

KTV点歌系统播放原理

北大青鸟KTV点歌系统播放原理 指导老师--原玉明 1.首先知道有两个类(PlayList   Song) PlayList类中有一方法 public static bool AddSong(Song song) { bool success = false;//记录添加歌曲是否成功 for (int i = 0; i < SongList.Length; i++) { //找到数组中第一个为null的位置 if (SongList[i] == null) { SongList[i] = son

KTV项目 SQL数据库的应用 结合C#应用窗体

五道口北大青鸟校区 KTV项目 指导老师:袁玉明 SQL数据库关系图 C#解决方案类图 第一步:创建数据库连接方法和打开方法和关闭方法! 1 public class DBHelper 2 { 3 private string str = "server=.;database=MyKtv;uid=sa"; 4 private SqlConnection _conection; 5 6 public SqlConnection Conection 7 { 8 get 9 { 10 if

KTV播放原理

KTV播放原理 学校:北大青鸟 指导老师:原玉明 第一步:点击歌手时歌曲列表中可以获取到歌手相对应的歌曲信息,当点击一首歌的时候可以把歌曲信息添加到已播列表中 首先要在dgv的cellclick的事件中写如下代码,把歌曲添加到数组中 在已点窗体中会出现以唱的歌曲 代码如下 有一个歌曲类(songliat)在类中有一个歌曲名和一个路径 同时在建一个播放类(palylist),在类中写静态数组用来存放歌曲 将选中的歌曲对象添加到数组中 代码如下: 然后在主界面中写一个播放歌曲的方法(palySong

KTV音乐播放的实现

 KTV音乐播放的实现 指导老师:原玉明 首先呢,咱们先来大致分析一下 看懂了吗? 其实我也不是很懂,接下来说点简单易懂的吧 首先,进行点歌是吧? 点了大陆的吧 李宇春 看看李宇春在数据库里有什么歌曲呢? 点进去有惊喜哦!!! 歌曲已经点击过来,想知道是怎么用代码实现的吗? 首先,怎么实现窗体跳转的呢?点击李宇春,歌曲怎么出来的呢? 点击已点歌曲,看它是否在不在呢? 打开后,就是要点歌了吧,要不来KTV干嘛呢?是吧? 接下来就是点歌了,怎么点击歌曲,就到了已点的里面呢? 咱们先看一下实现图,接下

观《IT培训行业揭秘》触发北大青鸟回忆

在园子里看到这篇文章<IT培训行业解密(六)>时,挺有感触,回忆顿时涌上心头: 我想起了当年单纯的我们因为各自的原因来到北大青鸟,或因前途迷茫而选择想找一条出路,或因父母的信息闭塞而想给我们找的出路,或因年龄太小父母不放心这么早进入社会......; 想起了我们当时对技术老师.对班主任多么的尊敬,觉得他们可以带着我们一起改变人生: 想起了我们从开始听老师对未来蓝图的描绘而充满希望,到后来对老师,对学校的质疑,和对未来的恐慌: 想起了老师带我们做所谓的项目的荒谬场景: 想起了我们班最后一期同学们

西安北大青鸟探寻oracle的连接问题

今天在为学生讲述西安java培训用scott用户登录oracle数据库时,竟然出现了ORA-01017: invalid username/password; logon denied错误,原以为是因为我的scott用户没有解锁,后用system用户登录,然后用alter user scott account unlock语句对scott用户进行解锁,可是解锁后依然不能进入,还是报告ORA-01017: invalid username/password; logon denied错误,仔细想了

武汉北大青鸟解读2016年10大IT热门岗位

武汉北大青鸟解读2016年10大IT热门岗位 2016年1月5日 13:37 北大青鸟 这是IT从业者的辉煌时代,IT行业的失业率正处在历史的低点,而且有的岗位——例如网络和安全工程师以及软件开发人员——甚至出现徘徊在1%的失业率.最新调查显示,81%的IT领导者表示很难找到IT人才.即使你不是安全专家也不是软件开发人员,依然也有大量的就业机会.下面武汉北大青鸟徐东校区为你介绍2016年10个热门的IT技能,这些技能是由在IT人力咨询公司Mondo,自由职业者和签约市场Upwork,以及IT教育