【发布时间】:2019-08-24 04:48:54
【问题描述】:
我的MediaPlaybackList.ShuffledItems 中有 10 个项目。但是当我尝试使用 uri 将项目转换回 ViewModel 列表(在我的情况下是 Music)时,我得到了 null。
这是为什么呢?是因为我从本地驱动器加载文件吗?
这就是我获取 uri 的方式:
public static async Task<List<Music>> GetRealPlayList()
{
if (PlayList.ShuffleEnabled)
{
if (ShuffledPlayList.Count == 0)
{
foreach (var music in PlayList.ShuffledItems)
{
ShuffledPlayList.Add(await Music.GetMusic(music.Source.Uri.AbsolutePath));
}
}
return ShuffledPlayList;
}
else
return CurrentPlayList;
}
这是我设置项目的方式:
public static async Task SetPlayList(IEnumerable<Music> playlist)
{
if (Helper.SamePlayList(playlist, CurrentPlayList)) return;
PlayList.Items.Clear();
CurrentPlayList.Clear();
foreach (var music in playlist)
{
var item = new MediaPlaybackItem(MediaSource.CreateFromStorageFile(await Helper.CurrentFolder.GetFileAsync(music.GetShortPath())));
PlayList.Items.Add(item);
CurrentPlayList.Add(music);
}
}
还有什么方法可以将MediaPlackBackItem 转换回 ViewModel? GetDisplayProperties().MusicProperties 没有我想要的一些属性,其中的属性也是空的。
【问题讨论】:
标签: c# uwp uri mediaplayback