[英]MediaElement doesn't play mp3
嘗試制作一些Mediaplayer應用。 我將中介元素放在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();
}
檢查中介元素源不為空,它具有正確的path值。 嘗試像這樣重建,仍然無法正常工作
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);
}
添加一個Watch / Quickwatch,以查看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從Library播放文件?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.