在我们的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%的时间内始终如一地运行。
似乎远程通道刚刚死亡或其他东西。
答案 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);
}
}