تجربة وسائط فارغة عند تشغيل مقاطع الفيديو من مكون إضافي في Windows Media Center
-
20-09-2019 - |
سؤال
في المكون الإضافي لـ Windows Media Center، نستخدم واجهة برمجة تطبيقات PlayMedia لتشغيل مقاطع الفيديو.هذه هي واجهة برمجة التطبيقات الموثقة بواسطة MS لتشغيل مقاطع الفيديو وهي موثقة في SDK.
على سبيل المثال.
AddInHost.Current.MediaCenterEnvironment.PlayMedia(Microsoft.MediaCenter.MediaType.Video, path, false)
في نظام التشغيل Vista، باستمرار، بعد هذه المكالمة، لدينا تجربة إعلامية جاهزة لنا في:AddInHost.Current.MediaCenterEnvironment.MediaExperience
ولكن في Windows 7 تكون الأشياء أكثر قليلاً غير منتظم ويبدو أن MediaExperience يذهب إلى الأرض بعد فترة معينة من الوقت أو بعض الإجراءات العشوائية.
كيف يمكنني تشغيل مقطع فيديو باستمرار والانتقال إلى وضع ملء الشاشة في نظام التشغيل Windows 7؟
هل هناك أي حلول لجعل واجهة برمجة التطبيقات هذه تعمل بشكل متسق بنسبة 100% من الوقت.
يبدو أن القناة البعيدة تموت أو شيء من هذا القبيل.
المحلول
في حال آخر روح فقيرة في حالة وجود هذه المشكلة، فإليك الحل البديل لنظام 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);
}
}