我正在尝试使用spotify API获得艺术品或专辑封面。我正在使用:
NSString *url = @"http://ws.spotify.com/search/1/track.json";
NSMutableDictionary *params = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
([Utils isEmptyString:_searchBar.text] ? @"music" : _searchBar.text), @"q", nil];
[self sendRequestWith:url params:params method:RequestMethodGET success:^(AFHTTPRequestOperation *operation, id response, NSDictionary *userData) {
NSDictionary *result = (NSDictionary *)response;
if(result){
[_trackList removeAllObjects];
NSArray *tracks = [Utils getDictionaryValue:result by:@[@"tracks"]];
for (NSDictionary *trackData in tracks) {
WPTrack *track = [[WPTrack alloc] initWithSpotifyJSON:trackData];
[_trackList addObject:track];
}
[listViewController updateWithObjects:_trackList];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error, NSDictionary *userData) {
} userData:nil];
我正在获取的当前方法似乎不返回曲目的缩略图。但是它返回轨道的"href",我可以使用它通过https://embed.spotify.com/oembed/?url=spotify:track:6bc5scNUVa3h76T9nvpGIH搜索轨道的图像。然而,这可能是另一个请求,这可能会减慢我在UITableView上的加载。有没有更好的方法来一起完成这个过程?
在api响应中不包含富媒体内容是常见的做法,因为客户端将不得不等待,直到所有内容都发送完毕,这可能需要很长时间。为了加快这个过程,您应该解析收集到的信息并将其显示给用户,同时使用Block进行另一个异步操作来检索图像并显示它。
使用Async调用单元格示例