Experiência na mídia nula ao reproduzir vídeos de um plugin no Windows Media Center
-
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.
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);
}
}