0

axWindowsMediaPlayer 在我的 Form 类中正常工作,现在我想为不同的播放器创建一个抽象工厂,我将 axWindowsMediaPlayer 移动到该工厂的实现类中。但是现在 playstatechanged 事件不再被触发,我错过了什么吗?这是我在实现类的构造函数中的初始化:

axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer();
axWindowsMediaPlayer1.CreateControl();
axWindowsMediaPlayer1.BeginInit();
axWindowsMediaPlayer1.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(axWindowsMediaPlayer1_PlayStateChange);
axWindowsMediaPlayer1.EndInit();

后来事件发生在实现类中:

    private void axWindowsMediaPlayer1_PlayStateChange(
    object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
    {
        if (e.newState == 8)
        {
            this.playnext(listBox);
        }
    }

所以我错过了什么,为什么这在我的 Winform 中有效,但在我的其他班级中却没有?

4

1 回答 1

0

现在它可以工作了,问题是它是一个 VS 2010 项目。我刚刚创建了一个新的 VS 2013 项目并将文件复制到其中,现在一切正常。

于 2015-07-12T18:29:16.243 回答