MediaElement в WinRT/Win8 вообще не работает

Меня очень разочаровывает WinRT (приложения для Windows 8). Я столкнулся с множеством проблем с самой базовой функциональностью и отсутствием документации для ее поддержки.

Итак, вот мой следующий вопрос из серии, которую я уже публиковал относительно WinRT:

<MediaElement Width="500" 
              Height="500"
              Source="ms-appx:///Assets/SampleVideo.wmv" />

Почему это не работает?!!!

  • Видео не отображается.
  • Звук не воспроизводится.
  • Нет сообщений об ошибках.
  • Никаких исключений.

Ни одно из этих событий не возникает:

  • МедиаOpened
  • MediaFailed
  • MediaEnded
  • SeekCompleted
  • DownloadProgressChanged
  • BufferingProgressChanged

Единственным событием, которое возникает, является CurrentStateChanged, которое происходит, когда состояние "Открывается". Вот и все. Больше ничего не происходит.

Я попытался сделать это вручную, используя такой поток:

var packageLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
var assetsFolder = await packageLocation.GetFolderAsync("Assets");
var myVideo = await assetsFolder.GetFileAsync("SampleVideo.wmv");
var stream = await myVideo.OpenAsync(FileAccessMode.Read);

_Player.SetSource(stream, myVideo.ContentType);
_Player.Play();

Это тоже не работает. То же бездействие.

Файл SampleVideo.wmv имеет тип сборки Content, и я могу нормально открыть его в проигрывателе Windows Media и Zune. Так что проблем с видеофайлом абсолютно нет. Однако я пробовал другие файлы, такие как MP4, AVI и т. Д. Ничего не работает.

У кого-нибудь еще есть проблемы? Любая помощь будет оценена по достоинству.


person Laith    schedule 05.10.2012    source источник
comment
В Центре разработки есть образец (code.msdn.microsoft.com/ windowsapps/), который я использовал, подключив ваш XAML и включив файл WMV в качестве локального актива, и он работал нормально — возможно, пошаговое выполнение примера и сравнение с вашим кодом поможет выявить проблему?   -  person Jim O'Neil    schedule 05.10.2012
comment
@ ДжимО'Нил, образец тоже не работает. Я скачал его раньше и протестировал все возможные видеофайлы. Ничего не играет. Никаких сообщений об ошибках или исключений. У меня есть 3 разных компьютера под управлением Windows 8, и ни один из них не может запустить видеофайл.   -  person Laith    schedule 05.10.2012
comment
это Windows 8 RTM и Visual Studio RTM, верно?   -  person Jim O'Neil    schedule 05.10.2012
comment
@ ДжимО'Нил, да. У нас есть лицензия MSDN, и мы установили последнюю версию Windows 8 Pro x64 с Visual Studio 2012 Ultimate. Три разных компьютера не могут запустить самое простое видео MediaElement.   -  person Laith    schedule 05.10.2012
comment
и такое же поведение с готовым образцом, который я цитировал выше, без модификаций, с точки зрения срабатывания CurrentStateChanged, но не MediaOpened?   -  person Jim O'Neil    schedule 05.10.2012
comment
У меня такая же проблема, но я не могу понять, почему. У меня установлены последние версии драйверов (это драйверы для Windows 7, их нет для Windows 8 и, вероятно, никогда не будет). Есть ли способ заставить его работать? Ничего не работает, даже образец.   -  person Tibi    schedule 23.11.2012
comment
@ Тиби, я бы хотел, чтобы у меня был ответ для тебя. Мне потребовалось некоторое время, чтобы выяснить проблему с драйвером. Все это связано с новым WinRT MediaPlayer, где он проглатывает исключения. В вашем случае, если драйверов не существует, возможно, поможет новая видеокарта.   -  person Laith    schedule 24.11.2012
comment
@Laith Спасибо за ответ. Заменить видеокарту невозможно, так как я использую ноутбук, и я точно не собираюсь покупать новый ноутбук/видеокарту только потому, что MediaElement не работает.   -  person Tibi    schedule 24.11.2012


Ответы (1)


После 48 часов исследований и мучительных проб и ошибок я нашел " rel="nofollow">эта ссылка на форумах MSDN.

В конце концов, Windows 8 не создает исключений для приложения. MediaElement незаметно выходит из строя, в то время как все остальные видеопроигрыватели работают нормально.

Решение: если у вас есть Bootcamp на любом ноутбуке или настольном компьютере Mac, обратитесь непосредственно к производителю видеокарты и загрузите его последние версии драйверов. У меня есть MacBook Pro 17 дюймов, и он использует серию AMD Radeon 6600m. Драйверы могут быть здесь для 64-битных версий.

В любом случае, мои извинения за трату времени.

Спасибо @JimO'Neil за попытку помочь :)

person Laith    schedule 05.10.2012