这里是 C# 编码的初学者。我构建了一个媒体播放器,允许管理员创建和保存播放列表。客人应该能够加载播放列表并播放所述播放列表中的歌曲。不幸的是,每次来宾加载创建的播放列表时,尝试播放播放列表中的任何歌曲时都会弹出错误。它似乎只加载路径详细信息,而不加载实际媒体。
“在 WindowsFormsApplication1.exe 中发生了“System.IndexOutOfRangeException”类型的未处理异常
附加信息:索引超出了数组的范围。”
这是我拥有的列表框下的代码:
axWindowsMediaPlayer1.URL = paths[lbPlaylist.SelectedIndex];
下面的代码代码是在“创建播放列表”按钮下编码的:
private void btnCreate_Click(object sender, EventArgs e)
{
OpenFileDialog newPlaylist = new OpenFileDialog();
newPlaylist.InitialDirectory = "C:\\Users\\mklsingh\\Documents\\Visual Studio 2013\\Projects\\Media Player\\WindowsFormsApplication1\\Media Files";
newPlaylist.Filter = "MP3 Audio File (*.mp3)|*.mp3| Windows Media File (*.wma)|*.wma|WAV Audio File (*.wav)|*.wav|All Files (*.*)|*.*";
newPlaylist.RestoreDirectory = false;
newPlaylist.Multiselect = true;
if (newPlaylist.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
files = newPlaylist.SafeFileNames;
paths = newPlaylist.FileNames;
for (int list = 0; list < files.Length; list++)
{
lbPlaylist.Items.Add(files[list]);
}
}
}
下面的代码将播放列表保存为 XML 文件:
private void btnSave_Click(object sender, EventArgs e)
{
StreamWriter Write;
SaveFileDialog savePlaylist = new SaveFileDialog();
savePlaylist.RestoreDirectory = false;
try
{
savePlaylist.InitialDirectory = "C:\\Users\\mklsingh\\Documents\\Visual Studio 2013\\Projects\\Media Player\\WindowsFormsApplication1\\Media Files\\Playlist";
savePlaylist.Filter = ("XML File|*.xml|All Files|*.*");
savePlaylist.ShowDialog();
Write = new StreamWriter(savePlaylist.FileName);
for (int I = 0; I < lbPlaylist.Items.Count; I++)
{
Write.WriteLine(lbPlaylist.Items[I]);
}
Write.Close();
MessageBox.Show("Playlist saved!");
}
catch //(Exception ex)
{
return;
}
}
下面的代码加载保存的 XML 播放列表文件:
private void btnLoad_Click(object sender, EventArgs e)
{
OpenFileDialog loadPlaylist = new OpenFileDialog();
loadPlaylist.Multiselect = false;
this.lbPlaylist.Items.Clear();
try
{
loadPlaylist.ShowDialog();
loadPlaylist.InitialDirectory = "C:\\Users\\mklsingh\\Documents\\Visual Studio 2013\\Projects\\Media Player\\WindowsFormsApplication1\\Media Files\\Playlist";
//txtLoad.Text = loadPlaylist.Filename;
StreamReader playlist = new StreamReader(loadPlaylist.FileName);
while (playlist.Peek() >= 0)
lbPlaylist.Items.Add(playlist.ReadLine());
txtLoad.Text = loadPlaylist.FileName;
}
catch
{
return;
}
}
此外,如果用户选择一首歌曲并播放它,它会起作用。如果用户决定在当前播放列表中添加一首歌曲,则所选歌曲将不会播放,并且会弹出相同的错误。如果我单击“清除列表”并选择一首新歌曲,它会起作用。
请让我知道您对我的代码的想法。我还是一个初学者,我发现我在网上看到的一些代码很难理解。哈哈。只想让我的保存播放列表和创建播放列表按钮工作。谢谢。