全部代码太长,只把自动播放部分的代码贴出来:
private void timer1_Tick(object sender, EventArgs e)
{
// 用Timer控件控制连续播放
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
if (playOne == false)
{
if (selectOne < listBox1.Items.Count)
{
selectOne += 1;
}
else if (selectOne == listBox1.Items.Count)
{
// 如果列表中所有媒体文件都播放完毕,则从头开始。
selectOne = 1;
}
}
listBox1.SelectedIndex = selectOne - 1;
Play(selectOne);
}
上述代码中selectOne表示正在播放的曲目的编号,playOne表示是否单曲循环。
我怀疑这个timer没有被触发,触发timer的代码如下:
private void button4_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex < 0) //当前没有在播放列表中选定任何文件时,从播放列表的第一个文件开始播放
{
selectOne = 1;
listBox1.SelectedIndex = 0;
}
else
{
selectOne = listBox1.SelectedIndex + 1;
}
Play(selectOne);
this.Invoke(new MethodInvoker(timer1.Start)); //触发timer,写成 //timer1.Enabled= true也不行
button7.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;