expérience multimédia nul lors de la lecture des vidéos à partir d'un plug-in dans Windows Media Center

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

  •  20-09-2019
  •  | 
  •  

Question

Dans nos fenêtres plug-in media center nous utilisons le api PlayMedia pour lire des vidéos. Ceci est l'API documentée par MS pour la lecture de vidéos et est documentée dans le kit de développement.

Par exemple.

AddInHost.Current.MediaCenterEnvironment.PlayMedia(Microsoft.MediaCenter.MediaType.Video, path, false) 

Dans Vista, toujours, après cet appel, nous avons une expérience multimédia prête pour nous: AddInHost.Current.MediaCenterEnvironment.MediaExperience

Cependant, dans Windows 7 choses est un peu plus erratique et semble que MediaExperience va à la-la terre après un certain laps de temps ou de certaines actions aléatoires.

Comment puis-je joue toujours une vidéo et le plein écran dans Windows 7?

Y a-t-il des solutions de contournement à obtenir cette API pour travailler de manière cohérente à 100% du temps.

Il semble que le canal Remoting meurt juste ou quelque chose.

Était-ce utile?

La solution

Dans le cas où une autre pauvre âme a ce problème, voici une solution pour gagner 7, les États membres ont été très lent en matière de fixation de cette.

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

            }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top