我正在制作一个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在惊喜播放之前导航离开,所以惊喜无法播放其声音。
你有几个选择:
-
在调用Frame.Navigate之前让惊喜结束。该应用程序可以处理惊喜的MediaEnded事件并导航到那里。
-
将惊喜放在探索页面上,并在该页面到达时播放
-
在包含应用程序正常页面的框架之外的页面中使用全局MediaElement。这将使MediaElement保持在视觉树中,即使应用程序在其下切换页面。如果你想在应用程序中播放一致的配乐,通常需要这样做,但对于特效来说就不那么需要了。我在博客文章参考框架中更详细地讨论了这种方法:保持音乐在页面上播放