读取Debug路径下的一个歌曲文件夹,在加载窗体时候随机播放文件夹的歌曲,如程序
axWindowsMediaPlayer1.URL = muspath + "\\" + new Random().Next(1,4).ToString() + ".mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
想加入个while循环,让它一直随机下去,这个while该怎么加?
我这么加
bool flag=TRUE;
while (flag)
{
axWindowsMediaPlayer1.URL = muspath + "\\" + new Random().Next(1, 4).ToString() + ".mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
}
然而,虽然生成成功,但是窗体却没有加载。这个.exe的cpu占用特高,也不提示错误,高手讲讲,这是什么情况?
我的循环加错地方啦?感谢一二提示~~~………………
axWindowsMediaPlayer1.URL = muspath + "\\" + new Random().Next(1,4).ToString() + ".mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
想加入个while循环,让它一直随机下去,这个while该怎么加?
我这么加
bool flag=TRUE;
while (flag)
{
axWindowsMediaPlayer1.URL = muspath + "\\" + new Random().Next(1, 4).ToString() + ".mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
}
然而,虽然生成成功,但是窗体却没有加载。这个.exe的cpu占用特高,也不提示错误,高手讲讲,这是什么情况?
我的循环加错地方啦?感谢一二提示~~~………………
应该是一首放完了 再随机放另一首吧
你这样一直死循环play 当然CPU受不了了
Thread.Sleep(10);
在_PlayStateChange事件里判断播放状态 private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
//播放下一首
}
}
1、你的MP3文件名是怎么样的?都是数字?你可以先把文件夹里所有的MP3文件读到List<string>里,再产生一个随机数,然后用这个随机数据去获取List<string>中的路径2、给出你现在的代码
按这位兄弟所说,为什么不能这么写
bool flag = true;
while (flag)
{
flag = false;
axWindowsMediaPlayer1.URL = muspath + "\\" + new Random().Next(1, 4).ToString() + ".mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
flag = true;
}
让这个while循环随机读曲目。
有事件不用,非得自己搞个死循环判断 while (true)
{
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
axWindowsMediaPlayer1.URL = muspath + "\\" + new Random().Next(1, 4).ToString() + ".mp3";
axWindowsMediaPlayer1.Ctlcontrols.play();
}
Application.DoEvents();
}
问题就在于,怎么知道是一首歌曲结束了?
我想用playstate控制。该怎么控制?
还要连累大神们~!!!
死循环,放到一个线程里面通过一个事件来触发这个循环操作,可以通过timer控件间隔多长时间触发一次,放到独立线程就不会影响前台界面展示