私は現在、c# と winforms を使用して mp3 ファイルを再生するこのチュートリアルに取り組んでいますが、曲をリストするために datagridview を追加しました。 、私がやりたいことは、曲の再生が終了したら、リストの次の曲に移動することです。私はThread.Sleepをオーディオレングスで試しましたが、スリープが完了するまでアプリケーション全体が機能しなくなります。これは私が望んでいるものではありません。それを機能させるために変更する必要があるものに、本当に感謝しています。これまでに取得したコードは次のとおりです。
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();
}