在Windows Phone 8.1上播放音乐

时间:2016-01-24 07:54:23

标签: windows-phone-8.1 audio-player

我尝试将所有音乐文件放入列表框并播放所选文件。

以下代码是我播放音乐所做的,但不幸的是它没有播放。谁能告诉我这是什么错误?

private async void button1_Click(object sender, RoutedEventArgs e)
{
    StorageFolder folder = Windows.Storage.KnownFolders.MusicLibrary;
    IReadOnlyList<StorageFile> files = await folder.GetFilesAsync();

    foreach (var file in files)
    {
        MusicProperties music = await file.Properties.GetMusicPropertiesAsync();

        listBox2.Items.Add(music.Title);       
    }
}

private async void listBox2_Tapped(object sender, TappedRoutedEventArgs e)
{
    try
    {
        StorageFolder folder = Windows.Storage.KnownFolders.MusicLibrary;
        IReadOnlyList<StorageFile> files = await folder.GetFilesAsync();

        if (files.Count > 0)
        {
            var file = files[listBox2.SelectedIndex];
            mediaElement1.Source = new Uri(files[listBox2.SelectedIndex].Path);
            textBlock1.Text = files[listBox2.SelectedIndex].Path;

            mediaElement1.Play();
        }
    }
    catch(Exception ex)
    {
        textBlock1.Text = ex.Message;
    }
}

2 个答案:

答案 0 :(得分:0)

而是mediaElement1.Source = new Uri(files[listBox2.SelectedIndex].Path);您需要使用以下代码:

        var fileStream = await file.OpenReadAsync();
        mediaElement.SetSource(fileStream, file.ContentType);

答案 1 :(得分:0)

您需要将BackgroundMediaPlayer与后台任务一起使用。

MSDN

  

您可以为Windows Phone 8.1编写在后台播放音频的应用程序。这意味着,即使用户通过按设备上的“后退”按钮或“开始”按钮离开应用程序,您的应用仍可继续播放音频。

     

背景音频播放的场景包括:

     

长时间播放的播放列表用户会短暂显示一个前台应用以选择并启动播放列表,然后用户希望播放列表继续在后台播放。

     

使用任务切换器用户会短暂显示一个前台应用程序以开始播放音频,然后使用该任务切换到另一个打开的应用程序   开关。用户希望音频继续播放   背景