Nula experiencia multimedia durante la reproducción de vídeos desde un plugin de Windows Media Center
-
20-09-2019 - |
Pregunta
En nuestro centro de windows media plug-in que utilizan la API de Playmedia para reproducir vídeos. Esta es la API documentado por MS para la reproducción de vídeos y está documentado en el SDK.
Ej.
AddInHost.Current.MediaCenterEnvironment.PlayMedia(Microsoft.MediaCenter.MediaType.Video, path, false)
En Vista, consistentemente, después de esta llamada que tienen una experiencia multimedia lista para nosotros en: AddInHost.Current.MediaCenterEnvironment.MediaExperience
Sin embargo, en Windows 7 cosas es un poco más errática y se parece que va a MediaExperience la-la tierra después de una cierta cantidad de tiempo o ciertas acciones al azar.
¿Cómo juego consistentemente un video y la pantalla completa en Windows 7?
¿Hay alguna solución para conseguir esta API para trabajar de forma constante el 100% de las veces.
Parece que el canal de interacción remota simplemente muere o algo así.
Solución
En caso de que otro pobre alma tiene este problema, aquí hay una solución para Win 7, MS haber sido muy lento cuando se trata de fijar esto.
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);
}
}