Как загрузить windows musi c библиотеку в медиа-элемент на UWP? - PullRequest
0 голосов
/ 05 февраля 2020

Как загрузить windows musi c библиотеку в медиа-элемент на UWP? Я делаю musi c player на элементе media (не элемент media player). У меня есть список музыкальных файлов c. Я могу загрузить этот список в элемент медиа-проигрывателя и не могу загрузить этот список в медиа-элемент. Код для создания списка загрузок musi c позже. Код генерации музыки c список:

protected override async void OnNavigatedTo(NavigationEventArgs e)
    {


        StorageFolder musicLib = KnownFolders.MusicLibrary;
        //file massive
        var files = await musicLib.GetFilesAsync();
        foreach (var file in files)
        {
            var musicProperties = await file.Properties.GetMusicPropertiesAsync();
            var artist = musicProperties.Artist;
            if (artist == "")
                artist = "UnKnown";
            var album = musicProperties.Album;
            if (album == "")
                album = "Unknown";

            SongList.Add((new Song { SongName = file.DisplayName, Artist = artist, Album = album, Path = file.Path }));
            MediaPlaybackItem Item = new MediaPlaybackItem(MediaSource.CreateFromStorageFile(file));
            mplPlaybackList.Items.Add(Item);
        }

        PopulateAlbumAndArtistLists();

        PlayerManager.lvSongsList.ItemsSource = SongList;
        //Load list to mediaplayer element
        meMyPlayer.Source = mplPlaybackList;
    }

1 Ответ

0 голосов
/ 07 февраля 2020

Невозможно загрузить этот список в медиа-элемент.

Когда вы устанавливаете MediaPlaybackList, передайте его источнику воспроизведения MediaElement вместо Source.

. xaml:

<MediaElement x:Name="mediaElement" AutoPlay="True"></MediaElement>

.cs:

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    _mediaPlaybackList = new MediaPlaybackList();
    SongList = new ObservableCollection<Song>();
    StorageFolder musicLib = KnownFolders.MusicLibrary;
    //file massive
    var files = await musicLib.GetFilesAsync();
    foreach (var file in files)
    {
        var musicProperties = await file.Properties.GetMusicPropertiesAsync();
        var artist = musicProperties.Artist;
        if (artist == "")
            artist = "UnKnown";
        var album = musicProperties.Album;
        if (album == "")
            album = "Unknown";

        SongList.Add((new Song { SongName = file.DisplayName, Artist = artist, Album = album, Path = file.Path }));
        MediaPlaybackItem Item = new MediaPlaybackItem(MediaSource.CreateFromStorageFile(file));
        _mediaPlaybackList.Items.Add(Item);
    }


    mediaElement.SetPlaybackSource(_mediaPlaybackList);
    }
...