WindowsMediaPlayer组件的问题
private void button1_Click(object sender, EventArgs e)
{
aaa:
//MessageBox.Show(axWindowsMediaPlayer1.playState.ToString());//测试点1
axWindowsMediaPlayer1.URL = @"e:\123.mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
//MessageBox.Show(axWindowsMediaPlayer1.playState.ToString());//测试点2
while (axWindowsMediaPlayer1.playState.ToString() == "wmppsStopped") ;//等待一首歌结束(播放状态为wmppsStopped)
{
//MessageBox.Show(axWindowsMediaPlayer1.playState.ToString());//测试点3
}
goto aaa;
}
本来想实现,放完一首歌,返回去继续再播放这首歌,发现一点button1就死了
1、加了几个测试点,发现,不管播放状态如何while (axWindowsMediaPlayer1.playState.ToString() == "wmppsStopped")居然都成立,即都执行下面的goto aaa;很奇怪。
2、测试点2的弹出窗口等到放完一首歌(播放器状态真正到wmppsStopped)的时候再点的时候,人为创造while (axWindowsMediaPlayer1.playState.ToString() == "wmppsStopped")成立的条件,程序居然卡死了,窗口有时能拖动有时不能拖动。猜测可能这时候真的在一直while了。
新手,烦请大家看下什么原因,再给个解决办法,或者实现功能的方式
------解决方案--------------------while当然死啦
你需要相应statechanged事件,通过事件得到一首播放完成的消息
------解决方案--------------------外侧的goto倒是可以改写成while(true);