VS 2013 Windows Store ..媒体元素

时间:2015-03-24 15:20:13

标签: c# xaml visual-studio-2012

我正在制作一个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();
}

1 个答案:

答案 0 :(得分:0)

MediaElement需要在可视树中播放,并在删除时停止。由于Explore_Click在惊喜发挥之前导航,因此惊喜无法发挥其声音。

您有几个选择:

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

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

  3. 在包含应用程序常规页面的Frame外部页面中使用全局MediaElement。即使应用程序切换其下方的页面,这也会让MediaElement保留在可视树中。如果您想在应用程序期间播放一致的音轨,通常需要这样做,但对于特殊效果则不是这样。我在博客文章Frame of reference: keeping the music playing across pages

  4. 中更详细地讨论了这种方法