写了个测试程序,大致上是这样的,播放完成后会自动将歌曲的标题加入到datagridview里面,通过PlayStateChange这个时间来控制的,当然它这个里面可以通过直接判断播放的状态,如果要加入timer的话,需要控制的就有很多,比如快进,快退,暂停,等..也就比较简单了,axWindowsMediaPlayer1.currentMedia.duration这个函数可以获取当前播放的进度,axWindowsMediaPlayer1.currentMedia.durationString这个函数可以返回媒体文件的总长度
我只是写了一些代码给你提供一个思路,剩下的还是要靠你自己完成
int i = 0;
private void button1_Click(object sender, EventArgs e)
{
Process.Start(@"C:\WINDOWS\system32\osk.exe");
textBox1.Focus();
}
private void Form1_Load(object sender, EventArgs e)
{
axWindowsMediaPlayer1.URL = @"F:\Media\MP3\t.r.y-网恋恰恰.mp3";
axWindowsMediaPlayer1.settings.autoStart = false;
axWindowsMediaPlayer1.Ctlcontrols.stop();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(axWindowsMediaPlayer1.currentMedia.durationString);
}
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (((WMPLib.WMPPlayState)e.newState == WMPLib.WMPPlayState.wmppsMediaEnded))
{
dataGridView1.Rows.Add(axWindowsMediaPlayer1.currentMedia.getItemInfo("Title"));
timer1.Stop();
}
else if (((WMPLib.WMPPlayState)e.newState == WMPLib.WMPPlayState.wmppsPlaying))
{
timer1.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (axWindowsMediaPlayer1.currentMedia.duration==0)
{
return;
}
else
{
i++;
label1.Text = i.ToString();
}
}