如何在WP8中单击按钮时播放音频文件?

时间:2015-09-23 08:50:00

标签: wpf windows-phone-8 visual-studio-2013

我想在按钮点击功能上播放音频文件。我试过这段代码,但它没有用。如何在代码后面播放音频文件?

    public static List<string> audiofiles = new List<string>();
    public static string sound1 = (new Uri("/Assets/Audio/baby-crying-01.wav", UriKind.Relative)).ToString();
    public static string sound2 = (new Uri("/Assets/Audio/baby-crying-02.wav", UriKind.Relative)).ToString();
    public static string sound3 = (new Uri("/Assets/Audio/baby-crying-03.wav", UriKind.Relative)).ToString();
    public static string sound4 = (new Uri("/Assets/Audio/baby-crying-04.wav", UriKind.Relative)).ToString();

    public static string[] sounds_list = new string[4];

    private void Practice_Click(object sender, RoutedEventArgs e)
    {            
           this.LayoutRoot.Children.Add(music);
            audiofiles.Add(sound1);
            audiofiles.Add(sound2);
            audiofiles.Add(sound3);
            audiofiles.Add(sound4);

            for (i = 0; i < 4; i++)
            {
                sounds_list = audiofiles.ToArray();                                
                music.Source = new Uri(sounds_list[i], UriKind.Relative);
                music.Play();
            }


    }

1 个答案:

答案 0 :(得分:2)

使用 MediaElement 在Windows Phone中播放声音。 步骤进行:

  1. 创建新项目。
  2. 删除MediaElement
  3. 在此之后将其name属性设置为mycontrol。根据您的文件更改源属性。

    <MediaElement x:Name="mycontrol" Source="/1.mp3" AutoPlay="False" HorizontalAlignment="Left" Height="103" Margin="98,56,0,0" VerticalAlignment="Top" Width="255" />
    
  4. 要在页面打开时自动播放音乐文件,您可以将MediaElement的自动播放属性设置为true。默认情况下,AutoPlay属性为true。
  5. 您可以使用MediaElement对象的“播放”,“暂停”和“停止”方法来控制媒体播放。 在MainPage.xaml属性值播放,暂停和停止
  6. Content添加三个按钮。
  7. 下面给出了这些按钮的点击事件处理程序的代码。

    private void play_button_click(object sender, RoutedEventArgs e)
    {
        mycontrol.Play();            
    }
    
    //pause the audio file
    private void pause_button_click(object sender, RoutedEventArgs e)
    {
        mycontrol.Pause();
    }
    
    //stop the audio file
    private void stop_button_click(object sender, RoutedEventArgs e)
    {
       mycontrol.Stop();          
    }
    
  8. 完成。