2011-12-25 39 views
0

我收到了一个很奇怪的错误。在我的XAML中,我有两个MediaElement标签与2种不同的声音相关联。然而,我并没有发挥正确的作用。MediaElement未播放源路径中定义的媒体文件?

XAML

<MediaElement x:Name="Sound" Source="Sounds/fusrodah.wma" AutoPlay="False" MediaFailed="Sound_MediaFailed" /> 
<MediaElement x:Name="Sound1" Source="Sounds/yoltorshul.wma" AutoPlay="False" /> 
<MediaElement x:Name="Sound2" Source="Sounds/iizslennus.wma" AutoPlay="False" /> 

C#

private void shout_Click(object sender, RoutedEventArgs e) 
     { 

      this.Sound.Play(); 

     } 

通过这里写的代码应该发挥的媒体Sound(即 '声音/ fusrodah.wma'),而不是它起着声音为Sound2(Sounds/iizslennus.wma)。

而且我发现,无论是过去的MediaElement标签的来源是什么得到发挥(即,如果我加了一个Sound3,它的媒体,这将得到发挥。

我不明白,这是一个非常奇怪的错误,我已经多次听过这些曲目,以确保我没有混淆它们,我已经多次检查过它们的路径。有没有人知道为什么它不能播放它指定的播放内容?

回答

2

页面上只能有一个MediaElement,这就是为什么它只能播放最后添加的MediaElement。

+0

是否有任何替代使用多种媒体元素。请建议。 – Sonu 2013-08-23 05:51:46

+0

不是我所知道的。如果你的声音文件是WAV文件,你可以使用[SoundEffectInstance](http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundeffectinstance.aspx),它可以让你播放多种声音与此同时。 – keyboardP 2013-08-23 07:18:25

0

我的XAML代码中有很多MediaElement,我没有问题。

XAML

  <MediaElement x:Name="musicPlayer" 
     Source="Assets/sons/rodar2.wav" 
     AudioCategory="BackgroundCapableMedia" AutoPlay="False"/> 
      <MediaElement x:Name="musicPlayerFinish" 
     Source="Assets/sons/success.wav" 
     AudioCategory="BackgroundCapableMedia" AutoPlay="False"/> 
      <MediaElement x:Name="musicPlayerNavigation" 
     Source="Assets/sons/navegar.wav" 
     AudioCategory="BackgroundCapableMedia" AutoPlay="False"/> 

在我的C#代码

async void PlayMediaNavigation() 
    { 
     await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() => 
     { 
      musicPlayerNavigation.Play(); 
     }); 
    } 




    private async void Botan_PointerReleased(object sender, PointerRoutedEventArgs e) 
    { 
     PlayMediaNavigation(); 
    }