Cocoalibspotify,封面艺术没有加载其余的元数据

时间:2013-01-12 05:40:04

标签: spotify cocoalibspotify-2.0

在示例项目中,猜猜简介,有一个名为 waitAndFillTrackPool 的方法,可以从用户的播放列表中获取所有曲目。在此方法中,使用 SPAsyncLoading 进行调用以获取所有曲目的元数据。

 [SPAsyncLoading waitUntilLoaded:tracks timeout:kSPAsyncLoadingDefaultTimeout then:^(NSArray *loadedTracks, NSArray *notLoadedTracks) { 

   // All of our tracks have loaded their metadata. Hooray!
   NSLog(@"[%@ %@]: %@ of %@ tracks loaded.", NSStringFromClass([self class]), NSStringFromSelector(_cmd),[NSNumber numberWithInteger:loadedTracks.count], [NSNumber numberWithInteger:loadedTracks.count + notLoadedTracks.count]);

成功时,正如评论所说,应加载所有曲目的元数据。但是,我无法获得 track.album.cover.image (它返回null)。所有其他元数据似乎都存在。

为了测试发生了什么,我在加载元数据后添加了这个:

 SPTrack *test = [theTrackPool objectAtIndex:0];
 NSLog(@"track: %@ , is loaded: %s, image loaded: %s",test.name,test.loaded ? "true" : "false", test.album.cover.loaded ? "true" : "false");

哪些日志:

 track: Howlin' For You , is loaded: true, image loaded: false

如果要加载元数据,专辑封面是否也不应该可用?

只是为了澄清,如果使用播放管理器和键值观察,我可以获得这个特定曲目的专辑封面。但是,我确实遇到类似的第一个值nil,第二个值正确在Downloading cover art URL from Spotify and key-value observing中。也许这是一个类似的错误?如果确实需要重新检查专辑封面,我如何设置观察者从一系列曲目中获取专辑封面?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

这是预期的行为(想象一下,如果我们在加载播放列表时立即为播放列表中的所有曲目下载了coverart - 这将是一个令人难以置信的大量数据!)。

访问image属性将触发加载封面,主要用于KVO。您也可以使用SPAsyncLoading加载它们。