Experiência na mídia nula ao reproduzir vídeos de um plugin no Windows Media Center

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Em nosso plug -in do Windows Media Center, usamos a API do PlayMedia para reproduzir vídeos. Esta é a API documentada da MS para reproduzir vídeos e está documentada no SDK.

Por exemplo.

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

No Vista, de forma consistente, após esta chamada, temos uma experiência de mídia pronta para nós em: addInhost.current.mediacerenvironment.mediaExperience

No entanto, na janela 7 coisas é um pouco mais errático e parece que o MediaExperience vai para a terra de La-La após um certo período de tempo ou certas ações aleatórias.

Como faço para reproduzir um vídeo constantemente e ir uma tela cheia na janela 7?

Existem soluções alternativas para fazer com que essa API trabalhe consistentemente 100% das vezes.

Parece que o canal remoto apenas morre ou algo assim.

Foi útil?

Solução

No caso de outro pobre alma Tem esse problema, aqui está uma solução alternativa para o Win 7, a MS tem sido muito lenta quando se trata de consertar isso.

        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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top