2011-12-25 84 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(); 
    }