У меня есть приложение, которое я переношу с Windows Phone -> Приложение для Windows 8 Store. Я играю музыку через свой App.Xaml.vb (чтобы он мог играть по всему моему приложению и контролироваться через CurrentApp). Все это прекрасно работает по телефону. Когда музыкальный трек заканчивается, событие MediaEnded запускается, и мое приложение выбирает другой трек и воспроизводит его. В Windows 8, когда заканчивается первый трек, приложение отключается.MediaElement.MediaEnded событие не работает
В Windows 8 событие MediaElement.MediaEnded не срабатывает.
Я настроил свой медиа-элемент и добавить обработчик:
Public WithEvents MusicElement as New MediaElement
[...then in the constructor...]
AddHandler MusicElement.MediaEnded, AddressOf ChangeTrack
играет музыка (с использованием метода PlayMusic, который я не думаю, что мне нужно опубликовать), но когда музыка заканчивается ISN события Уволен.
Разница между версией телефона и версией Windows 8 заключается в том, что я не могу поместить элемент управления MediaElement в XAML в Win8 по какой-либо причине - он, похоже, не разрешен, поэтому я инициализирую его в своем коде за.
Я не использую тип медиафайла «фоновый звук» (который, как я слышал, может вызвать проблемы с событием MediaEnded).
Я подтвердил, что обработчик добавлен до начала воспроизведения.
Любые идеи?
Edit: XAML (попытка) код в app.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Common/StandardStyles.xaml"/>
<ResourceDictionary Source="DetectiveStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--<MediaElement x:Name="MusicElement" x:Key="MusicElement" Source="/Sounds/Music/doing-my-best.mp3" AutoPlay="False"/>-->
</ResourceDictionary>
</Application.Resources>
Я добавил код XAML, когда пытался его ввести. Я предполагаю, что проблема заключается в том, что я пытаюсь реализовать mediaelement в App.XAML (я хочу иметь доступ к нему из любого места приложения). В Windows Phone я добавил его, как указано выше, в ресурсы, и он отлично работает. В Windows 8 он не позволит мне помещать медиаэлемент в ресурсы App.Xaml (поэтому код комментируется - я не могу скомпилировать его). – pumpkinszwan
У меня была такая же проблема, и я могу подтвердить, что пока звук воспроизводится при запуске в ViewModel, событие действительно не срабатывает. Размещение его в представлении XAML устраняет проблему + принудительно создает шаблон MVVM, поэтому беспроигрышный :-) –