C# Windows Phone 8.1上GetMusicProperties Async返回的持续时间不正确

C# Windows Phone 8.1上GetMusicProperties Async返回的持续时间不正确,c#,windows-phone,windows-phone-8.1,C#,Windows Phone,Windows Phone 8.1,我正在尝试建立一个音乐选择器来在我的应用程序中建立一个播放列表,我使用 await KnownFolders.MusicLibrary.GetFilesAsync(CommonFileQuery.OrderByName) 然后使用以下选项选择每个文件的音乐属性: var info = await Task.WhenAll(files.Select(async f => new { file = f, m = await f.Properties.GetMusicProperti

我正在尝试建立一个音乐选择器来在我的应用程序中建立一个播放列表,我使用

await KnownFolders.MusicLibrary.GetFilesAsync(CommonFileQuery.OrderByName)
然后使用以下选项选择每个文件的音乐属性:

var info = await Task.WhenAll(files.Select(async f => new 
    { file = f, m = await f.Properties.GetMusicPropertiesAsync() }));
由于某些原因,“我的媒体”的“持续时间”属性完全关闭-它实际上是一个小10000倍的数字,因此对于持续时间为1:10:02(4202秒)的媒体文件,它报告的持续时间为0.420224秒

介质的实际毫秒数存储在timespan的刻度中。 因此,要获得媒体的真实持续时间,我必须重新计算持续时间,如下所示:

item.Duration = TimeSpan.FromMilliseconds(item.Duration.Ticks)

我在文档中遗漏了什么吗?Docs for声明它
以毫秒为单位获取歌曲的持续时间。
而且它是
时间跨度
,那么这是一个bug吗?

我也发现了这个bug。可能的解决方案是从路径加载文件(但速度可能较慢):

StorageFile fileShadow = await StorageFile.GetFileFromPathAsync(file.Path);
var musicProps = await fileShadow.Properties.GetMusicPropertiesAsync();
var duration = musicProps.Duration;//Valid duration