簡體   English   中英

MediaElement無法播放mp3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM