C# 如何在Xaml(Windows phone 8)中播放声音而不创建媒体元素?

C# 如何在Xaml(Windows phone 8)中播放声音而不创建媒体元素?,c#,xaml,windows-phone-8,xna,C#,Xaml,Windows Phone 8,Xna,在我的例子中,我想播放一个C类文件中的声音文件。 我在xaml页面中引用了创建媒体元素的示例。 我想每5分钟播放一次声音。这个过程是我申请的后遗症。我没有这方面的设计页面。只需在代码中声明媒体元素: MediaElement element = new MediaElement(); 如果您的声音是WAV文件,请尝试以下操作: Stream stream = TitleContainer.OpenStream("sounds/bonk.wav"); SoundEffect effect = S

在我的例子中,我想播放一个C类文件中的声音文件。 我在xaml页面中引用了创建媒体元素的示例。
我想每5分钟播放一次声音。这个过程是我申请的后遗症。我没有这方面的设计页面。

只需在代码中声明媒体元素:

MediaElement element = new MediaElement();

如果您的声音是WAV文件,请尝试以下操作:

Stream stream = TitleContainer.OpenStream("sounds/bonk.wav");
SoundEffect effect = SoundEffect.FromStream(stream);
FrameworkDispatcher.Update();
effect.Play();
更新


请考虑该类位于命名空间中,并且是的一部分,Windows Phone 8.1运行时应用程序(不是Silverlight one)不支持该类。这意味着,如果您计划将应用程序升级/移植到Windows Phone 8.1(及更高版本)或Windows 8.1(及更高版本),很遗憾,这个答案对您不起作用。

在我的Cage.mp3文件中的“/Assets/Sounds/Cage.mp3”目录中。我使用这个目录,它在打开一个流时会发生异常..Hi@duDE目录可以。但是在SoundEffect.FromStream(stream)中抛出一个异常;“由于对象的当前状态,操作无效”Hi“正在工作。对于.Wav来说,它是有效的。mp3呢?不,不幸的是,不仅是对于Wav,下面的MediaElement=new MediaElement();元素体积=1.0;element.Source=newURI(“/Assets/Sounds/cage.wav”,UriKind.Relative);元素Play();这是因为MediaElement必须是可视化树的一部分。因此,在许多情况下,@Filip的配方都不是可行的。