从Windows媒体中心的插件播放视频时的无聊媒体体验

时间:2009-12-18 11:52:53

标签: windows-7 mediacenter

在我们的Windows媒体中心插件中,我们使用PlayMedia api播放视频。这是MS编写的用于播放视频的API,并记录在SDK中。

例如

AddInHost.Current.MediaCenterEnvironment.PlayMedia(Microsoft.MediaCenter.MediaType.Video, path, false) 

在Vista中,始终如一,在此次通话结束后,我们为我们提供了以下媒体体验: AddInHost.Current.MediaCenterEnvironment.MediaExperience

然而,在Window 7中,东西有点不稳定,并且似乎MediaExperience在经过一定时间或某些随机动作后进入la-la land。

如何在Window 7中始终如一地播放视频并全屏显示?

是否有任何变通方法可以使此API在100%的时间内始终如一地运行。

似乎远程通道刚刚死亡或其他东西。

1 个答案:

答案 0 :(得分:0)

如果另一个可怜的灵魂有这个问题,这里是win 7的解决方法,在解决这个问题时MS一直很慢。

        var mce = AddInHost.Current.MediaCenterEnvironment.MediaExperience;

        // great window 7 has bugs, lets see if we can work around them 
        if (mce == null) {
            System.Threading.Thread.Sleep(200);
            mce = AddInHost.Current.MediaCenterEnvironment.MediaExperience;
            if (mce == null) {
                try {
                    var fi = AddInHost.Current.MediaCenterEnvironment.GetType()
                        .GetField("_checkedMediaExperience", BindingFlags.NonPublic | BindingFlags.Instance);
                    if (fi != null) {
                        fi.SetValue(AddInHost.Current.MediaCenterEnvironment, false);
                        mce = AddInHost.Current.MediaCenterEnvironment.MediaExperience;
                    }

                } catch (Exception e) { 
                    // give up ... I do not know what to do 
                    Logger.ReportException("AddInHost.Current.MediaCenterEnvironment.MediaExperience is null", e);
                }

            }