我有一个从 Windows Phone -> Windows 8 Store 应用程序移植的应用程序。我通过我的 App.Xaml.vb 播放音乐(以便它可以在我的应用程序中播放并通过 CurrentApp 进行控制)。这一切都适用于手机。当音乐曲目结束时,会触发 MediaEnded 事件,我的应用会选择另一个曲目并播放它。在 Windows 8 中,当第一首曲目结束时,应用程序会静音。
在 Windows 8 上,MediaElement.MediaEnded 事件不会触发。
我设置了我的媒体元素并添加了一个处理程序:
Public WithEvents MusicElement as New MediaElement
[...then in the constructor...]
AddHandler MusicElement.MediaEnded, AddressOf ChangeTrack
音乐播放(使用我认为不需要发布的 PlayMusic 方法),但是当音乐结束时,不会触发事件。
手机版和windows 8版的区别在于我不能把MediaElement控件放在Win8的XAML中,因为某种原因——好像是不允许的,所以我在后面的代码中初始化了它。
我没有使用“背景音频”媒体类型(我听说这可能会导致 MediaEnded 事件出现问题)。
我已确认在启动任何播放之前添加了处理程序。
有任何想法吗?
编辑:App.XAML 中的 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>