Win8 metro app 播放来自网络语音文件常见问题


在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)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章