MediaElement不播放mp3

时间:2016-02-14 12:55:35

标签: c# windows-phone-8.1

尝试制作一些媒体播放器应用。我将mediaelement放在wpf上,编写代码来打开媒体。但是当我尝试播放时,没有任何事情发生......

public void ContinueFileOpenPicker(FileOpenPickerContinuationEventArgs args)
{
    if (args.Files.Count > 0)
    {
        foreach (StorageFile file in args.Files)
        {
            if (playlist.Contains(file.Path)) return;
            playlist.Add(file.Path);
        }
    }
}

private void PlayButton_OnClick(object sender, RoutedEventArgs e)
{
    MyMedia.Source = new Uri(playlist[0], UriKind.RelativeOrAbsolute);
    MyMedia.Play();
}

检查mediaelement源是否为空,它具有正确的路径值。 尝试像那样重建,仍然无法正常工作

private async void PlayButton_OnClick(object sender, RoutedEventArgs e)
    {
        var stream = await Playlist[0].OpenAsync(FileAccessMode.Read);
        MyMedia.SetSource(stream, Playlist[0].ContentType);
        MyMedia.Play();
    }

3 个答案:

答案 0 :(得分:2)

对不起,这是我的错误。

在我的XAML中,我忘记了AutoPlay控件的MediaElement属性设置为false

这解决了我的问题。

答案 1 :(得分:0)

你需要注意的事情。

foreach (StorageFile file in args.Files)
{
    if(playlist.Contains(file.Path))
    {
       return;// Dont return use continue. You will probably skip rest of the files.
    }
    playlist.Add(file.Path);
}

添加观看/快速观察以查看new Uri(playlist[0], UriKind.RelativeOrAbsolute)是否指向正确的位置。

答案 2 :(得分:0)

从存储文件设置源:

var storageFile = await KnownFolders.MusicLibrary.GetFileAsync("line.mp3");
var stream = await storageFile.OpenAsync(FileAccessMode.Read);
mediaElement.SetSource(stream, storageFile.ContentType);
mediaElement.Play();

我从这个回答中得到了它:How to play file from Library by MediaElement?