码迷,mamicode.com
首页 > Windows程序 > 详细

C#简单音乐播放器ListBox歌单列表

时间:2015-01-14 19:45:28      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

     简单的音乐播放器实现其实并不难,直接用axWindowsmediaplayer来做,这里没有什么技术含量的,但是axWindowsmediaplayer是不会生成歌单列表的,也就是说,在每次添加音乐后axWindowsmediaplayer是没有记录的,那么我就来简单的做下歌单列表。

     axWindowsmediaplayer的工作原理其实就是根据Path来加载的,在写歌单时我们需要先来做两件事,1、存储歌曲Path 2、存储歌曲名字 这里暂且不考虑数据库,我使用IO操作通过txt文件来存储这两种信息。

     思路过程:

              判断文件是否存在  -----存在 ------ 写入流存入数据 ------更新ListBox

                                      -----不存在 ------创建两个文件 ------- 写入流存入数据 ------更新ListBox

              这都不是问题,重点在我们必须使用两个ListBox,一个显示歌名,一个存入路径,并且要使两个ListBox相关联

      IO操作代码:

技术分享
 1  public void IOStreamName()
 2         { 
 3             if (File.Exists(NamePath))
 4             {
 5                 // 存入文件名
 6                // MessageBox.Show("1存在!");
 7                 StreamWriter NameWriter = new StreamWriter(NamePath,true);
 8                 if (ListSafeFileName.Items.Count > 0)
 9                 {
10                     for (int i = 0; i < ListSafeFileName.Items.Count; i++)
11                     {
12                         NameWriter.WriteLine(ListSafeFileName.Items [ListSafeFileName .Items .Count -1].ToString () );
13                         break;
14                     }
15                     NameWriter.Close();
16                 } 
17             }
18             else
19             {
20                 // 创建文件名文件
21                 FileStream SafeFileName = new FileStream(NamePath, FileMode.Create);
22                 SafeFileName.Close();
23                 StreamWriter NameWriter = new StreamWriter(NamePath);
24                 for (int i = 0; i < ListSafeFileName.Items.Count; i++)
25                 {
26                     NameWriter.WriteLine(ListSafeFileName.Items[ListSafeFileName.Items.Count - 1].ToString());
27                 }
28                 NameWriter.Close();
29                 
30             }
31         }
IOStreamName
技术分享
 1 public void IOStreamFileName()
 2         {
 3             if (File.Exists(FileNamePath))
 4             {
 5                 // 存入文件路径
 6                // MessageBox.Show("2存在!");
 7                 StreamWriter FileNameWriter = new StreamWriter(FileNamePath, true);
 8                 if (ListFileName.Items.Count > 0)
 9                 {
10                     for (int i = 0; i < ListFileName.Items.Count; i++)
11                     {
12                         FileNameWriter.WriteLine(ListFileName.Items[ListFileName.Items.Count - 1].ToString());
13                         break;
14                     }
15                     FileNameWriter.Close();
16                 }
17             }
18             else
19             {
20                 // 创建路径文件
21                 FileStream FileName = new FileStream(FileNamePath, FileMode.Create);
22                 FileName.Close();
23                 StreamWriter FileNameWriter = new StreamWriter(FileNamePath);
24                 for (int i = 0; i < ListFileName.Items.Count; i++)
25                 {
26                     FileNameWriter.WriteLine(ListFileName.Items[ListFileName.Items.Count - 1].ToString());
27                 }
28                 FileNameWriter.Close();
29                
30             }
31         }
IOStreamFileName

    ListBox关联思路

技术分享
1  private void ListSafeFileName_MouseDoubleClick(object sender, MouseEventArgs e)
2         {
3             if (ListSafeFileName.SelectedIndex >= 0)
4             {
5                 ListFileName.SelectedIndex = ListSafeFileName.SelectedIndex;
6                 WinPlayer.URL = ListFileName.SelectedItem.ToString();
7             }
8         }
ListSafeFileName

    启动即更新列表 (这里要说下,更新,我写了两个函数,这里的算法是比较经典的,是真的把ListBox玩出了花,代码写到这其实是最过瘾的)

技术分享
 1  public void IOStreamReadName()
 2         {
 3             if (File.Exists(NamePath))
 4             {
 5                 StreamReader MusicName = new StreamReader(NamePath);
 6                 string[] TxtData = File.ReadAllLines(NamePath);
 7                 for (int i = 0; i < TxtData.Length; i++)
 8                 {
 9                     ListSafeFileName.Items.Add(MusicName.ReadLine());
10                 }
11                 MusicName.Close();
12             }
13 
14         }
IOStreamReadName
技术分享
 1 public void IOStreamReadFileName()
 2         {
 3             if (File.Exists(FileNamePath))
 4             {
 5                 StreamReader MusicFileName = new StreamReader(FileNamePath);
 6                 string[] TxtData = File.ReadAllLines(FileNamePath);
 7                 for (int i = 0; i < TxtData.Length; i++)
 8                 {
 9                     ListFileName.Items.Add(MusicFileName.ReadLine());
10                 }
11                 MusicFileName.Close();
12             }
13         }
IOStreamReadFileName

 

       这里贴出来的都是核心代码了,其实后来想想txt文件是不便于管理的,用泛型集合也挺好,有待改进吧。

C#简单音乐播放器ListBox歌单列表

标签:

原文地址:http://www.cnblogs.com/heiloe/p/4224621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!