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();
}
对不起,这是我的错误。
在我的 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 播放库中的文件?