import com.androidquery.callback.AjaxCallback; //导入方法依赖的package包/类
public void getArtwork(Track track) {
final String currentArtist = "" + track.getArtist();
if (currentArtist.equals(""))
return;
if (MediaUtils.getArtworkQuick(context, track, 300, 300) != null)
return;
if (activeTasks.size() > 2)
return;
if (activeTasks.containsKey(currentArtist))
return;
activeTasks.put(currentArtist, this);
AQuery aq = new AQuery(context);
String url = String.format("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&api_key=683548928700d0cdc664691b862a8d21&artist=%s&format=json", Uri.encode(currentArtist));
AjaxCallback cb = new AjaxCallback();
cb.url(url).type(JSONObject.class).fileCache(true).expire(3600 * 60 * 1000);
aq.sync(cb);
JSONObject result = cb.getResult();
if (result != null) {
JSONObject jsonObject = null;
String albumArtImageLink = null;
try {
if (!result.has("artist"))
return;
jsonObject = result.getJSONObject("artist");
JSONArray image = jsonObject.getJSONArray("image");
for (int i=0;i
jsonObject = image.getJSONObject(i);
if (jsonObject.getString("size").equals("extralarge")) {
albumArtImageLink = Uri.decode(jsonObject.getString("#text"));
}
}
if (!(albumArtImageLink != null && albumArtImageLink.equals(""))) {
String path = MediaUtils.getArtistPath(track);
if (path != null) {
File file = new File(path);
AjaxCallback cbFile = new AjaxCallback();
cbFile.url(albumArtImageLink).type(File.class).targetFile(file);
aq.sync(cbFile);
AjaxStatus status = cbFile.getStatus();
if (status.getCode() == 200) {
if (listener != null)
listener.onNewArtwork();
} else {
file.delete();
}
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
activeTasks.remove(currentArtist);
}