MediaElement未播放源路径中定义的媒体文件?
问题描述:
我收到了一个很奇怪的错误。在我的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
,它的媒体,这将得到发挥。
我不明白,这是一个非常奇怪的错误,我已经多次听过这些曲目,以确保我没有混淆它们,我已经多次检查过它们的路径。有没有人知道为什么它不能播放它指定的播放内容?
答
页面上只能有一个MediaElement,这就是为什么它只能播放最后添加的MediaElement。
答
我的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();
}
是否有任何替代使用多种媒体元素。请建议。 – Sonu 2013-08-23 05:51:46
不是我所知道的。如果你的声音文件是WAV文件,你可以使用[SoundEffectInstance](http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundeffectinstance.aspx),它可以让你播放多种声音与此同时。 – keyboardP 2013-08-23 07:18:25