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

简单的音乐播放器实现其实并不难,直接用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文件是不便于管理的,用泛型集合也挺好,有待改进吧。

时间: 2024-10-13 17:03:49

C#简单音乐播放器ListBox歌单列表的相关文章

Android 实现简单音乐播放器(一)

今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习之路上的一个小小里程碑,给我增加了很多信心(~~真容易获得满足~~).从下面开始,我将详细介绍MusicPlayer的设计过程. 首先,先看一下这个项目的工程目录和运行效果:      从上面的图片看到,整个工程的布局文件有两个:activity_main.xml和musiclist.xml,其中,

Android——简单音乐播放器

使用MediaPlayer做的简单音乐播放器,更多内容请到百度经验查看   http://jingyan.baidu.com/article/60ccbceb63452364cab197f1.html <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:l

Android开发---MediaPlayer简单音乐播放器

Android开发-MediaPlayer简单音乐播放器 功能介绍 实现一个简单的播放器,类似网易云音乐形式,功能包括: 播放.暂停,停止,退出功能: 后台播放功能: 进度条显示播放进度.拖动进度条改变进度功能: 播放时图片旋转,显示当前播放时间功能: 界面样式 功能实现 1. MediaPlayer的实现 MediaPlayer常用方法介绍 MediaPlayer的实现包括初始化MediaPlayer,MediaPlayer的功能实现,包括播放.暂停.停止.离开等,具体细节如下: MediaP

Android 实现简单音乐播放器(二)

在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我将解析MusicPlayer的功能实现,就讲一些主要的点和有趣的细节,结合MainActivity.java代码进行说明(写出来可能有点碎……一向不太会总结^·^). 一.功能菜单 在MusicPlayer中,我添加了三个菜单: search(搜索手机中的音乐文件,更新播放列表). clear(清除播放列表……这个功能是最初加进去的,后来改进之后,已经没什么实际意义). exit(退出). menu

Android开发实战之简单音乐播放器

最近开始学习音频相关.所以,很想自己做一个音乐播放器,于是,花了一天学习,将播放器的基本功能实现了出来.我觉得学习知识点还是蛮多的,所以写篇博客总结一下关于一个音乐播放器实现的逻辑.希望这篇博文对你的学习和生活有所帮助.效果图: **实现逻辑** 在市面上的音乐播放app,即时你关了.那么一样会在后台播放,所以播放的逻辑应该写在Service中.并且能够实现Service和Activity之间进行通信.那么Service是四大组件之一,所以在使用的时候一定不要忘了在配置文件中声明一下. <ser

iOS 简单音乐播放器 界面搭建

如图搭建一个音乐播放器界面,具备以下几个简单功能: 1,界面协调,整洁. 2,点击播放,控制进度条. 3.三收藏歌曲,点击收藏,心形收藏标志颜色加深. 4,左右按钮,切换歌曲图片和标题. 5,点击中间图片,隐藏所有按钮,仅显示蓝色背景. 设计的整体思路: 1.在搭建界面的时候,为了整洁和方便后续的功能的添加,需要将整个的界面划分为几个部分: ①:最上面的一行包括:一个返回按钮.一个歌曲名称.一个收藏按钮: ②:第二行:一个slider控件.两侧是当前的歌曲播放进度和歌曲的总时长--两个lable

Android开发6:Service的使用(简单音乐播放器的实现)

前言 啦啦啦~各位好久不见啦~博主最近比较忙,而且最近一次实验也是刚刚结束~ 好了不废话了,直接进入我们这次的内容~ 在这篇博文里我们将学习Service(服务)的相关知识,学会使用 Service 进行后台工作, 学会使用 Service 与 Activity 进行通信,并在此知识基础上学会使用 MediaPlayer和简单的多线程编程.使用 Handle 更新 UI,并设计成功一个简单的音乐播放器. 是不是很高大上呢~一起来学习~ 基础知识 Service作为Android四大组件之一,在每

Qt5 简单音乐播放器(进击版1)

今天又抽空改进了下音乐播放器的功能 主要改进代码: 播放列表:QListWidget 类 标准文件对话框:QFileDialog QString getfilename(QString filepath) {     QString filename;     QStringList list = filepath.split("/");     filename = list.at(list.size()-1);     return filename; } QString Main

第二十九节(java-开发简单音乐播放器 )

package com.tanzhou.jmf; import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import javax.swing.*; // JFrame java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大