Null esperienza multimediale durante la riproduzione di video da un plugin in windows media center

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

  •  20-09-2019
  •  | 
  •  

Domanda

Nel nostro Windows Media Center plug-in che utilizzano l'API PlayMedia per riprodurre i video. Questo è l'API documentata da MS per la riproduzione di video ed è documentato nel SDK.

Eg.

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

In Vista, in modo coerente, dopo questa chiamata abbiamo un'esperienza multimediale pronto per noi in: AddInHost.Current.MediaCenterEnvironment.MediaExperience

Tuttavia in Window 7 roba è un po 'più irregolare ed è sembra che MediaExperience va a la-la terra dopo un certo periodo di tempo o determinate azioni casuali.

Come faccio costantemente riprodurre un video e lo schermo intero in Window 7?

Ci sono soluzioni a ottenere questo API per lavorare in modo coerente il 100% del tempo.

Sembra che il canale di comunicazione remota appena muore o qualcosa del genere.

È stato utile?

Soluzione

Nel caso in cui un altro povera anima ha questo problema, ecco un soluzione per win 7, MS stato davvero lento quando si tratta di fissare questo.

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

            }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top