我再一次陷入练习中.当我打开我的程序时,我想要一个MP3文件播放 - 我能做到这一点,我得到了音乐.我还想要一个允许暂停音乐的复选框 - 但要么我很累,要么事情不起作用 - 当我检查/取消选中它时没有任何反应.我这样做了:
public void PlayPause(int Status)
{
WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
switch (Status)
{
case 0:
wmp.URL = "Musik.mp3";
break;
case 1:
wmp.controls.play();
break;
case 2:
wmp.controls.pause();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在打开程序时,使用案例0调用该方法.音乐播放.都好.然而,这不起作用,我不明白为什么,因为这是非常简单的代码.
public void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
PlayPause(2);
}
else if (checkBox1.Checked == false)
{
PlayPause(1);
}
}
Run Code Online (Sandbox Code Playgroud)
任何关于为什么选中复选框的想法都不会暂停/取消暂停音乐?
每次调用PlayPause函数时,您都要实例化一个全新的WindowsMediaPlayer对象.
因此,当您稍后调用暂停时,您什么都不会暂停.
您需要保持或传递对该WMP对象的引用,以便您在同一个上运行.