MediaElement doesn't play mp3

本文关键字:play mp3 doesn MediaElement | 更新日期: 2023-09-27 18:34:29

正在尝试制作一些媒体播放器应用程序。我把媒体元素放在 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();
}

已检查媒体元素源是否不为空,它是否具有正确的路径值。尝试像那样重建,仍然不起作用

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();
    }

MediaElement doesn't play mp3

对不起,这是我的错误。

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

这解决了我的问题。

您需要注意的几件事。

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)是否指向正确的位置。

从存储文件安装源:

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

我从这个答案中得到了它: 如何通过 MediaElement 播放库中的文件?