초보자를 C#으로 코딩합니다. 관리자가 재생 목록을 만들고 저장할 수있는 미디어 플레이어를 만들었습니다. 손님은 재생 목록을로드하고 상기 재생 목록에서 노래를 재생할 수 있어야합니다. 불행하게도 게스트가 만든 재생 목록을로드 할 때마다 재생 목록에있는 노래를 재생할 때 오류가 발생합니다. 실제 미디어가 아닌 경로 세부 정보 만로드하는 것 같습니다. ListBox를 사용하여 재생 목록 만들기, 저장 및 재생
는 "타입"System.IndexOutOfRangeException '처리되지 않은 예외 WindowsFormsApplication1.exe부가 정보 발생 인덱스 배열의 범위 밖에 있었다. "
이
목록 상자에서 코드 내가 가진 :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;
}
}
또한 사용자가 하나의 노래를 선택하여 재생하면 작동합니다. 사용자가 현재 재생 목록에 노래를 추가하기로 결정하면 선택한 노래가 재생되지 않고 동일한 오류가 나타납니다. "목록 지우기"를 클릭하고 새 노래를 선택하면 제대로 작동합니다.
제 코드에 대한 여러분의 생각을 알려주세요. 나는 아직 초보자이며 온라인에서 볼 수있는 일부 코드를 이해하기가 어렵습니다. 하하. Save Playlist와 Create Playlist 버튼을 만들고 싶습니다. 감사.
시작하려면 액세스하려는 색인이 있는지 확인하십시오. if (lbPlaylist.SelectedIndex
nastassiar
if 문을 목록 상자에 배치해야합니까? 미안, 정말로 초보자. –