使用WMP在C#中暂停/播放MP3文件

时间:2012-06-22 22:34:18

标签: c# mp3 wmp

我的练习再次陷入困境。 当我打开我的程序时,我想要一个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;
        }
    }

打开程序后,将使用案例0调用该方法。播放音乐。都好。 然而,这不起作用,我不明白为什么,因为这是非常简单的代码。

        public void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true)
        {
            PlayPause(2);
        }
        else if (checkBox1.Checked == false)
        {
            PlayPause(1);
        }
    }

为什么选中复选框不会暂停/取消暂停音乐?

2 个答案:

答案 0 :(得分:6)

每次调用PlayPause函数时,都会实例化一个全新的WindowsMediaPlayer对象。

因此,当您稍后暂停时,您暂停任何事情。

您需要保持或传递对该WMP对象的引用,以便您在同一个对象上运行。

答案 1 :(得分:1)

嗯,这是因为每次调用PlayPause时都会创建一个新的媒体播放器。在构造函数中创建它应该没问题。