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



我又一次有点陷入了练习。我希望在打开程序时播放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);
        }
    }

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

每次

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

因此,当你稍后调用暂停时,你不会暂停任何内容。

您需要按住或传递对该 WMP 对象的引用,以便在同一对象上操作。

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

最新更新