最近照着网上写了一个媒体播放器,决定将一些关键点与大家分享一下。
1. 用到的主要控件:
(1)ListBox用于显示播放列表
(2)Windows Media Player:该控件需要在工具箱中的选择项中添加,在COM组件下选择Windows Media Player,点击确定。
(3)openFileDialog:用于选择播放文件,打开该文件目录,选择地址。
(4)timer:计时器
2. 具体方法:
(1)公共变量:
string[] fileList = new string[1000];//定义播放列表的最大值
int numOfMusic;//选中的媒体文件的索引号
int selectOne;//选中的音乐文件
bool playOne = false;//控制是否循环播放
(2)添加列表:
int i;
openFileDialog1.FileName = "";//设置默认文件名
openFileDialog1.InitialDirectory = "C:\\";//设置默认路径
openFileDialog1.Filter = "mp3文件|*.mp3|所有文件|*.*";//设置文件类型
if (openFileDialog1.ShowDialog() == DialogResult.OK)//点击按钮
{
string path = openFileDialog1.FileName;//获取文件路径
FileInfo f = new FileInfo(path);//建立路径
AddFile(f.FullName);//添加到fileList中
string strFile = Convert.ToString(numOfMusic);
for (i = 1; i < 5 - strFile.Length; i++)
{
strFile += "";
}
strFile = f.Name;
listBox1.Items.Add(strFile);//添加到listBox1列表中
if (listBox1.Items.Count > 0)
{
OpenBtn();//打开按钮
}
}
public void AddFile(string path)
{
if (numOfMusic < 1000)//如果选中的文件索引号小于1000
{
numOfMusic += 1;//索引号自加
fileList[numOfMusic] = path;//将路径存入fileList数组中
}
else//列表已满
{
MessageBox.Show("不能添加文件!", "播放列表已满");
}
}
(3)删除:
int i = listBox1.SelectedIndex;
if (listBox1.SelectedIndex >= 0)
{
if ((selectOne == listBox1.SelectedIndex + 1) && (axWindowsMediaPlayer1.URL != ""))
{
MessageBox.Show("不能删除正在播放的文件", "错误");
}
else
{
DelFile(i + 1);
listBox1.Items.RemoveAt(i);
if (i < listBox1.Items.Count)
{
listBox1.SelectedIndex = i;
}
else if (listBox1.Items.Count == 0)
{
CloseBtn();
}
else
{
listBox1.SelectedIndex = 0;
}
}
}
(4)播放:
if (listBox1.SelectedIndex < 0)
{
selectOne = 1;
listBox1.SelectedIndex = 0;
}
else
{
selectOne = listBox1.SelectedIndex + 1;
}
Play(selectOne);
timer1.Enabled = true;
button7.Enabled = true;
button8.Enabled = true;
(5)停止:
axWindowsMediaPlayer1.URL = "";
this.Text = "媒体播放器";
timer1.Enabled = false;
button7.Enabled = false;
listBox1.SelectedIndex = selectOne - 1;
该播放器源码地址:http://download.csdn.net/detail/iamdale11/8043523