如何配置Windows媒体播放器控件(即axWindowsMediaPlayer)然后再次使用它?

时间:2014-03-22 10:56:40

标签: c# .net-4.0 wmp

我有一个Windows应用程序,主窗体(mainform.cs)包括可以从主菜单中删除/添加的用户控件(即用户可以从主菜单关闭用户控件,用户控件是tabcontrols中选项卡内的布局) 何时关闭用户控件,我这样调用dispose:

If (!MediaControl.IsDisposed)
     MediaControl.Dispose();

其中一个用户控件包括用于播放媒体的axWindowsMediaPlayer控件。 当应用程序启动时,它会成功加载该媒体用户控件,并能够正常播放媒体(添加媒体文件,更改播放列表项目,播放,暂停...等所有工作) 当我从主菜单关闭该用户控件时,媒体成功关闭。 但是当我再次尝试添加它时,我收到了这条消息:

  

"附加信息:已与其分离的COM对象   不能使用基础RCW。"

尝试初始化播放列表时VS调试中断:

    // Within media usercontrol
    protected override void OnFilesRefresh()
    {            
        foreach (string file in files)
        {
            WMPLib.IWMPMedia m1 = axWindowsMediaPlayer.newMedia(file);
            axWindowsMediaPlayer.currentPlaylist.appendItem(m1);
            .....
        }
    }

虽然文件是文件路径数组。 newMedia方法导致了这个问题。 如何处理包含axWindowsMediaPlayer的媒体用户控件可能会再次初始化它而没有问题? 对不起我的英文

1 个答案:

答案 0 :(得分:0)

进行一点搜索,发现问题在这里描述:

Is it safe to call an RCW from a finalizer?

在这里:

Release Excel Object In My Destructor

他们有同样的问题, 希望有所帮助。