第一步:
創建一個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控件中
}
新聞熱點
疑難解答