尝试制作一些媒体播放器应用。我将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();
}
答案 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?