Nula experiencia multimedia durante la reproducción de vídeos desde un plugin de Windows Media Center

StackOverflow https://stackoverflow.com/questions/1927782

  •  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í.

¿Fue útil?

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);
                }

            }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top