在Metro程序中播放多媒体文件,可使用MediaElement来播放。在xaml文件中添加如下一行:
<MediaElement x:Name="playSound" Source="" AutoPlay="False"></MediaElement>
如果是相应控件来播放声音很容易,只需要给source设置一个uri,然后play
playSound.Source = new Uri("http://xxxxxxx/music.mp3", UriKind.Absolute);
playSound.AutoPlay = true;
playSound.Play();
其中需要设置AutoPlay,不然会听不到声音。
但是很多情况下播放声音不是在响应控件的时候,而是在其他类中。在外部类中得不到主界面对象,我们可以声明一个属性来保存主界面对象。
public static MainPage Current
{
get;
set;
}
public MainPage()
{
this.InitializeComponent();
Current = this;
}
然后在主界面类中增加一个播放声音函数,在外部类中通过MainPage.Current来调用这个函数。
一个常见问题。开发过程中会发现外网的音频文件可以播放,但是内网的却不行,需要修改一项设置,在Package.appxmanifest文件中的Capabilities选项卡,勾上Private networks (Client & Server)