Нулевое воспроизведение мультимедиа при воспроизведении видео из плагина в Windows media center
-
20-09-2019 - |
Вопрос
В нашем плагине Windows media Center мы используем PlayMedia api для воспроизведения видео.Это документированный MS API для воспроизведения видео, который задокументирован в SDK.
Например.
AddInHost.Current.MediaCenterEnvironment.PlayMedia(Microsoft.MediaCenter.MediaType.Video, path, false)
В Vista, последовательно, после этого вызова у нас есть медиа-интерфейс, готовый для нас в:Добавить хост.Текущий.Среда медиацентра.Опыт работы со СМИ
Однако в Window 7 все немного сложнее неустойчивый и кажется, что медиаэксперимент переходит в la-la land через определенное количество времени или определенных случайных действий.
Как мне последовательно воспроизводить видео и переходить на весь экран в окне 7?
Существуют ли какие-либо обходные пути для обеспечения стабильной работы этого API в 100% случаев.
Кажется, удаленный канал просто умирает или что-то в этом роде.
Решение
В случае, если другой бедная душа есть эта проблема, вот обходной путь для win 7, MS работает очень медленно, когда дело доходит до исправления этого.
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);
}
}