Null Media-Erlebnis, wenn Videos von einer Plug-in Windows Media Center zu spielen

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

  •  20-09-2019
  •  | 
  •  

Frage

In unserem Windows Media Center Plugin verwenden wir die PlayMedia api Videos zu spielen. Dies ist die dokumentierte API von MS für das Abspielen von Videos und ist im SDK dokumentiert.

Eg.

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

In Vista, konsequent, nach diesem Aufruf haben wir ein Medium für uns bereit erlebt in: AddInHost.Current.MediaCenterEnvironment.MediaExperience

Jedoch in Windows 7 Sachen ist ein bisschen mehr unberechenbar und scheint, dass MediaExperience geht nach la-la Land nach einer gewissen Zeit oder bestimmte zufällige Aktionen.

Wie konsequent ich ein Video abspielen und Vollbild in Windows 7 gehen?

Gibt es Abhilfen diese API Arbeit konsequent 100% der Zeit zu bekommen.

Es scheint, der Remoting-Kanal gerade stirbt oder so etwas.

War es hilfreich?

Lösung

Bei einer anderen arme Seele dieses Problem hat, ist hier eine Abhilfe für Win 7, hat MS wirklich langsam, wenn es darum geht, diese zu beheben.

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

            }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top