我目前正在学习使用 c# 和 winforms 播放 mp3 文件的本教程,但是我添加了一个 datagridview 来列出歌曲,现在当我点击网格中的一首歌曲时,它播放的歌曲很好,但它只播放那一首歌,我想做的是在歌曲播放完毕后继续播放列表中的下一首歌曲。我已经尝试了 Thread.Sleep 与 audiolenght 作为时间,但这只是阻止整个应用程序工作,直到它完成睡眠,这根本不是我想要的,我对 winforms 有点陌生,所以如果有人可以指导我我需要更改以使其正常工作,我将非常感激。这是我到目前为止的代码:
private void dgvTracks_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
PlayFiles(e.RowIndex);
}
public void PlayFiles(int index)
{
try
{
int eof = dgvTracks.Rows.Count;
for (int i = index; index <= eof; i++)
{
if (File.Exists(dsStore.Tables["Track"].Rows[i]["Filepath"].ToString()))
{
PlayFile(dsStore.Tables["Track"].Rows[i]["Filepath"].ToString());
Application.DoEvents();
Thread.Sleep(TimeSpan.FromSeconds(mplayer.AudioLength));
}
else
{
Exception a = new Exception("File doesn't exists");
throw a;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, ex.Message, MessageBoxButtons.OK);
}
}
public void PlayFile(string filename)
{
mplayer.Open(filename);
mplayer.Play();
}