Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在windows phone 8.1运行时获取音乐文件速度太慢_C#_Windows Phone 8_Windows Phone 8.1 - Fatal编程技术网

C# 在windows phone 8.1运行时获取音乐文件速度太慢

C# 在windows phone 8.1运行时获取音乐文件速度太慢,c#,windows-phone-8,windows-phone-8.1,C#,Windows Phone 8,Windows Phone 8.1,我正在Windows Phone 8.1运行时的音乐库中处理音乐。但是我有个问题。太慢了。在Windows Phone 8.0或8.0 Silverlight中,当我使用Microsoft.Xna.Framework.Media时,速度非常快。在WP 8.1运行时中,我不能使用XNA,我必须使用KnownFolders.MusicLibrary。 例如: App.listMusicFiles = await KnownFolders.MusicLibrary.GetFilesAsync(Comm

我正在Windows Phone 8.1运行时的音乐库中处理音乐。但是我有个问题。太慢了。在Windows Phone 8.0或8.0 Silverlight中,当我使用Microsoft.Xna.Framework.Media时,速度非常快。在WP 8.1运行时中,我不能使用XNA,我必须使用KnownFolders.MusicLibrary。 例如:

App.listMusicFiles = await KnownFolders.MusicLibrary.GetFilesAsync(CommonFileQuery.OrderByName);

for (int i = 0; i < App.listMusicFiles.Count; i++)
{
    MusicProperties musicProperties = await App.listMusicFiles[i].Properties.GetMusicPropertiesAsync();
App.listSongs.Add(new DeviceSongModel(i, musicProperties.Title, musicProperties.Artist, App.listMusicFiles[i].Path,     App.listMusicFiles[i].ContentType, musicProperties.Album, musicProperties.Duration.Ticks, ""));

}
App.listMusicFiles=await KnownFolders.MusicLibrary.getfileasync(CommonFileQuery.OrderByName);
对于(int i=0;i

它非常非常慢。但是为什么呢?

您看到的问题可能是因为这一行:

await KnownFolders.MusicLibrary.GetFilesAsync(CommonFileQuery.OrderByName);
在封面下,它正在遍历,为每个文件创建内存中的表示,并将表示编组回应用程序的进程


更好的方法是使用
await KnownFolders.MusicLibrary.getfileasync(CommonFileQuery.OrderByName,index,batchSize)一次只获取固定大小的一批文件。这将限制返回的文件数。然后,您可以在后台请求下一批时处理返回的文件

谢谢亚当!但我认为问题在于如何获取音乐信息。GetFileAsync()快速获取所有音乐文件!有没有更快的方法检索音乐属性?