VS 2013 Windows应用商店.媒体元素



我正在制作一个windows商店应用程序,我正在尝试为按钮添加一个声音,以便您单击它时使用。我已经完成了编码,没有错误,但声音不会播放。感谢您的帮助。

XAML

<Button x:Name="Explore" HorizontalAlignment="Left" Height="163"        Margin="692,461,0,0" VerticalAlignment="Top" Width="546" BorderThickness="0" Click="Explore_Click"/>
<MediaElement x:Name="suprise" Source="Assets/suprise.mp3" AutoPlay="False" Visibility="Collapsed" HorizontalAlignment="Left" Height="147" Margin="108,285,0,0" VerticalAlignment="Top" Width="533" RenderTransformOrigin="0.5,0.5"/>

xaml.cs

private void Explore_Click(object sender, RoutedEventArgs e)
{
    this.Frame.Navigate(typeof(Explore));
    suprise.Play();
}

MediaElement需要在可视化树中才能播放,并且在移除时会停止。由于Explore_Click在惊喜播放之前导航离开,所以惊喜无法播放其声音。

你有几个选择:

  1. 在调用Frame.Navigate之前让惊喜结束。该应用程序可以处理惊喜的MediaEnded事件并导航到那里。

  2. 将惊喜放在探索页面上,并在该页面到达时播放

  3. 在包含应用程序正常页面的框架之外的页面中使用全局MediaElement。这将使MediaElement保持在视觉树中,即使应用程序在其下切换页面。如果你想在应用程序中播放一致的配乐,通常需要这样做,但对于特效来说就不那么需要了。我在博客文章参考框架中更详细地讨论了这种方法:保持音乐在页面上播放

最新更新