我正在制作一个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();
}
答案 0 :(得分:0)
MediaElement需要在可视树中播放,并在删除时停止。由于Explore_Click在惊喜发挥之前导航,因此惊喜无法发挥其声音。
您有几个选择:
在调用Frame.Navigate之前让意外结束。该应用可以处理惊喜的MediaEnded事件并在那里导航。
在“探索”页面上放置惊喜,并在到达该页面时播放
在包含应用程序常规页面的Frame外部页面中使用全局MediaElement。即使应用程序切换其下方的页面,这也会让MediaElement保留在可视树中。如果您想在应用程序期间播放一致的音轨,通常需要这样做,但对于特殊效果则不是这样。我在博客文章Frame of reference: keeping the music playing across pages