读书人

大神们看一下小弟我这代码如何改

发布时间: 2013-08-01 15:23:18 作者: rapoo

大神们看一下我这代码怎么改

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace LMZshipin
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string[] fileList = new string[10000]; // 定义播放列表数的最大值
int numOfMusic; // 选中的媒体文件的索引号
int selectOne; // 选中的音乐文件
bool playOne = false; // 控制是否循环播放


public void AddFile(string path)
{
if (numOfMusic < 10000)
{
numOfMusic += 1;
fileList[numOfMusic] = path;
}
else
{
MessageBox.Show("不能添加文件!", "播放列表已满");
}
}

public void AddFiles(string path, ListBox lstFiles)
{


DirectoryInfo dir = new DirectoryInfo(path);
foreach (FileInfo f in dir.GetFiles("*.mp3"))
{
AddFile(f.FullName);
int i;
string strFile = Convert.ToString(numOfMusic);
for (i = 1; i <= 5 - strFile.Length; i++)
{
strFile += "";
}
strFile = f.Name;
lstFileList.Items.Add(strFile);
}
foreach (DirectoryInfo d in dir.GetDirectories())
{
AddFiles(d.FullName, lstFileList);
}
}



public void DelFile(int selectNum)
{
int i;
for (i = selectNum; i <= numOfMusic - 1; i++)
{
fileList[i] = fileList[i + 1];
}
numOfMusic -= 1;
}



public void CloseBtn()
{
btnPlay.Enabled = false;
btnBack.Enabled = false;
btnForward.Enabled = false;
btnStop.Enabled = false;
btnReplay.Enabled = false;
btnDelete.Enabled = false;
}


private void Form1_Load(object sender, EventArgs e)
{
lstFileList.Items.CopyTo(fileList, 0);
// 将列表框(lstFileList)中的列表项全部复制到数组(fileList)中
numOfMusic = 0; // 选中第一个媒体文件
CloseBtn();

}
public void Play(int selectNum)
{
mediaPlayer.URL = fileList[selectNum]; // 播放选中的媒体文件
this.Text = "正在播放 -- " + lstFileList.SelectedItem.ToString();
}



public void OpenBtn()
{
btnPlay.Enabled = true;
btnBack.Enabled = true;
btnForward.Enabled = true;
}






private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
{

}



private void butAddFile_Click(object sender, EventArgs e)
{
int i;
odlgMedia.FileName = ""; // 设置默认文件名
odlgMedia.InitialDirectory = "C:\\"; // 设置默认路径
odlgMedia.Filter = "mp3文件|*.mp3|所有文件|*.*"; // 设置文件类型
if (odlgMedia.ShowDialog() == DialogResult.OK)
{
string path = odlgMedia.FileName;
FileInfo f = new FileInfo(path);
AddFile(f.FullName);
string strFile = Convert.ToString(numOfMusic);
for (i = 1; i <= 5 - strFile.Length; i++)
{
strFile += "";
}
strFile = f.Name;
lstFileList.Items.Add(strFile);
if (lstFileList.Items.Count > 0)
{
OpenBtn();
}


}

}

private void btnAddFiles_Click(object sender, EventArgs e)
{
fbdlaMedia.SelectedPath = "c:\\";
fbdlaMedia.ShowNewFolderButton = true;

fbdlaMedia.Description = "请选择媒体文件目录:";
fbdlaMedia.ShowNewFolderButton = false;
if (fbdlaMedia.ShowDialog() == DialogResult.OK)
{
AddFiles(fbdlaMedia.SelectedPath, lstFileList);
if (lstFileList.Items.Count > 0)
{
OpenBtn();
}
}

}

private void btnDelete_Click(object sender, EventArgs e)
{
int i = lstFileList.SelectedIndex;
if (lstFileList.SelectedIndex >= 0)
{
if ((selectOne == lstFileList.SelectedIndex + 1) && (mediaPlayer.URL != ""))
{
MessageBox.Show("不能删除正在播放的文件", "错误");
}


else
{
DelFile(i + 1);
lstFileList.Items.RemoveAt(i);
if (i < lstFileList.Items.Count)
{
lstFileList.SelectedIndex = i;
}
else if (lstFileList.Items.Count == 0)
{
CloseBtn();
}
else
{
lstFileList.SelectedIndex = 0;
}
}
}

}

private void btnPlay_Click(object sender, EventArgs e)
{
if (lstFileList.SelectedIndex < 0)
{
selectOne = 1;


lstFileList.SelectedIndex = 0;
}
else
{
selectOne = lstFileList.SelectedIndex + 1;
}
Play(selectOne);
tmrMedia.Enabled = true;
btnStop.Enabled = true;
btnReplay.Enabled = true;

}

private void lstFileList_SelectedIndexChanged(object sender, EventArgs e)
{

btnDelete.Enabled = true;
}

private void btnBack_Click(object sender, EventArgs e)
{
if (lstFileList.SelectedIndex > 0)
{
lstFileList.SelectedIndex -= 1;
}
else if (lstFileList.SelectedIndex == 0)
{
lstFileList.SelectedIndex = lstFileList.Items.Count - 1;
}
else
{
lstFileList.SelectedIndex = numOfMusic - 1;
}


selectOne = lstFileList.SelectedIndex + 1;
Play(selectOne);
btnStop.Enabled = true;
btnReplay.Enabled = true;

}

private void btnForward_Click(object sender, EventArgs e)
{
if (lstFileList.SelectedIndex < lstFileList.Items.Count - 1)
{
lstFileList.SelectedIndex = lstFileList.SelectedIndex + 1;
}
else
{
if (lstFileList.SelectedIndex > 0)
{
lstFileList.SelectedIndex = 0;
}
}
selectOne = lstFileList.SelectedIndex + 1;
Play(selectOne);
btnStop.Enabled = true;
btnReplay.Enabled = true;


}

private void btnStop_Click(object sender, EventArgs e)
{
mediaPlayer.URL = "";
this.Text = "媒体播放器";
tmrMedia.Enabled = false;
btnReplay.Enabled = false;


lstFileList.SelectedIndex = selectOne - 1;

}

private void btnReplay_Click(object sender, EventArgs e)
{
if (playOne == true)
{
playOne = false;
btnReplay.FlatStyle = FlatStyle.Standard; // 设置按钮外观为三维
btnReplay.Text = "单曲循环";
}
else
{
playOne = true;
btnReplay.FlatStyle = FlatStyle.Popup; // 设置按钮外观为平面显示
btnReplay.Text = "取消循环";
}
lstFileList.SelectedIndex = selectOne - 1;
}

private void lstFileList_DoubleClick(object sender, EventArgs e)
{
// 双击播放列表中的媒体文件时,则播放该文件
btnPlay_Click(sender, e);
playOne = false;
btnReplay.Text = "单曲循环";
}

private void tmrMedia_Tick(object sender, EventArgs e)
{

// 用Timer控件控制连续播放
if (mediaPlayer.playState == WMPLib.WMPPlayState.wmppsStopped)


{
if (playOne == false)
{
if (selectOne < lstFileList.Items.Count)
{
selectOne += 1;
}
else if (selectOne == lstFileList.Items.Count)
{
// 如果列表中所有媒体文件都播放完毕,则从头开始。
selectOne = 1;
}
}
lstFileList.SelectedIndex = selectOne - 1;
Play(selectOne);
}

}


希望能帮忙更改一下,谢谢 c#
[解决办法]
右键工具箱==〉选择项==〉COM组建==〉勾选Windows Media Player==〉确定

在你窗体上放置这个控件(Windows Media Player)!!

还有一个ListBox

修改控件名称
------解决方案--------------------


引用:
Quote: 引用:

先不说你说的错误,AddFile函数就有错
额,说一下怎么恩能改,谢谢
上面不是已经给你解决方法了吗,你没试吗
[解决办法]
不是粘贴源代码就可以的,最好获得人家完整的项目文件。

读书人网 >C#

热点推荐