none
WP8.1 RT 中,设置MediaElement的Source属性,为何不播放声音? RRS feed

  • 问题

  • 是这样的,我在xaml中放了个【MediaElement】:

    <MediaElement x:Name="m1" AutoPlay="False"/>


    然后在xaml.cs中这样写:

    m1.Source = new Uri("ms-appx:///Sounds/gua.mp3");
    m1.Play();


    其中,【gua.mp3】文件在项目文件夹的【Sounds】文件夹中,但这却不能正常工作,没有任何声音播放!

    -------------------------------------------------

    然后我更改xaml代码:
    <MediaElement x:Name="m1" AutoPlay="False" Source="Sounds/gua.mp3"/>
    xaml.cs代码:
    m1.Play();

    这样就正常了,那么:
    1.我要如何在cs代码中指定Source属性呢?
    2.如果我的mp3在【Windows.Storage.ApplicationData.Current.LocalFolder】中,我又改如何指定路径才能播放?


    谢谢

    2015年1月7日 11:10

答案

  • 你好,

    >>但这却不能正常工作,没有任何声音播放!

    首先,我们查看下音频文件的Build Action,一般为Content:

    其次,如果你把播放的后台代码放在页面的构造函数中,因为你的AutoPlay设置为False,所以App打开的时候是不会播放声音的,我们需要开启AutoPlay:

    public MainPage()
    {
                this.InitializeComponent();
    
                this.NavigationCacheMode = NavigationCacheMode.Required;
    
                m1.Source = new Uri("ms-appx:///Sounds/ring5.mp3");
    
                m1.AutoPlay = true;//Here
                m1.Play();
                
    }

    >>如果我的mp3在【Windows.Storage.ApplicationData.Current.LocalFolder】中,我又改如何指定路径才能播放?

    如果你是直接放置在LocalFolder下的,可以这样设置:

    m1.Source = new Uri("ms-appdata:///local/ring5.mp3");


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 jesse hao 2015年1月8日 10:19
    2015年1月8日 6:49
    版主