C# 媒体元素不会第一次播放歌曲,或者根本不会播放歌曲。

C# 媒体元素不会第一次播放歌曲,或者根本不会播放歌曲。,c#,windows-phone-8.1,winrt-xaml,C#,Windows Phone 8.1,Winrt Xaml,我在播放一首从简单列表中选择的歌曲时遇到了一点小问题PickerfyOut,现在,它可以工作了 private async void MusicFilesList_ItemsPicked(ListPickerFlyout sender, ItemsPickedEventArgs args) { StorageFile selectedMusic = sender.SelectedItem as StorageFile; using

我在播放一首从简单列表中选择的歌曲时遇到了一点小问题PickerfyOut,现在,它可以工作了

private async void MusicFilesList_ItemsPicked(ListPickerFlyout sender, ItemsPickedEventArgs args)
        {
            StorageFile selectedMusic = sender.SelectedItem as StorageFile;

            using (IRandomAccessStream stream = await selectedMusic.OpenAsync(FileAccessMode.Read))
            {
                this.MusicPlayer.SetSource(stream, selectedMusic.ContentType);
                this.MusicPlayer.Play();
            }

        }
它工作得很好,除了一个小虫子真的让我不安-第一次我选择了一首歌-它不会播放,只有从第二次。现在我调试了一下,我看到它实际上也是第一次进入处理程序,但出于某种原因,它只会第二次播放。奇怪的是,有人告诉我应该按以下方式编写事件处理程序-

  private  void MusicFilesList_ItemsPicked(ListPickerFlyout sender, ItemsPickedEventArgs args)
        {
            StorageFile selectedMusic = sender.SelectedItem as StorageFile;
            this.MusicPlayer.AutoPlay = true;
            this.MusicPlayer.Source = new Uri(selectedMusic.Path);
            this.MusicPlayer.Play();
        }

对我来说-看起来很好,但根本不会播放这首歌。有人能解释为什么第一个不能正常工作,第二个根本不能工作,以及使用媒体元素播放音乐的正确方式是什么

显然,去掉using子句解决了第一种方法第一次不起作用的问题,但是仍然不清楚为什么第二种方法根本不起作用,我怀疑这是windows phone 8.1的问题,因为我在某个地方读到它实际上适用于silverlight,但我也很乐意阅读其他观点。