Windowsメディアセンターでのプラグインからビデオを再生ヌルメディア体験
-
20-09-2019 - |
質問
私たちのWindowsメディアセンタープラグインでは、ビデオを再生するにはPlayMedia APIを使用します。これは、ビデオを再生し、SDKに記載されてのためにMSによって文書化されたAPIです。
例:ます。
AddInHost.Current.MediaCenterEnvironment.PlayMedia(Microsoft.MediaCenter.MediaType.Video, path, false)
Vistaでは、一貫して、この呼び出しの後、私たちは中に私たちのために準備ができて、メディアの経験を持っています: AddInHost.Current.MediaCenterEnvironment.MediaExperience
しかしウィンドウで7のものは、もう少しの不安定なのですMediaExperienceは、時間または特定のランダムなアクションの一定量の後にラ・ラ・ランドに行くものと思われます。
どのように私は一貫して、ビデオを再生し、ウィンドウ7でフルスクリーンで行くのですか?
このAPIは、時間の一貫100%動作するように取得する任意の回避策があります。
リモートチャネルがちょうど死ぬか何かと思われます。
解決
の別の貧しい魂はここに、この問題を持って勝利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);
}
}
所属していません StackOverflow