java 正在获取相册画面,如JPEG、PNG等

qlckcl4x  于 2023-02-21  发布在  Java
关注(0)|答案(2)|浏览(191)

有没有简单的Web API可以将专辑封面作为图片返回,就像Google静态MapAPI(Google Static Map API)?我听说过Amazon和Last.fm的API,但是找不到任何代码(除了PHP/Perl/Ruby等Web语言)。此外,它们是REST API。任何帮助都将不胜感激。
有简单的URL(GET)查询还是只有REST/XML方法?

ilmyapht

ilmyapht1#

手工操作应该不难。last.fmAlbum.getInfo方法的API规范非常简单,而且它是一个REST api,这使得它更加简单。只需从服务器获取xml响应,解析它并获得图像的url。我不久前写了这段代码,但它应该仍然可以工作:

String request = "http://ws.audioscrobbler.com/2.0/?method=" + method +
                    "&api_key="+apiKey;
            request += "&artist=" + artist.replaceAll(" ", "%20");
            if (method.equals("album.getinfo")) request += "&album=" + album.replaceAll(" ", "%20");
            URL url = new URL(request);
            InputStream is = url.openStream();
            DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc = db.parse(is);

            NodeList nl = doc.getElementsByTagName("image");
            for (int i = 0; i < nl.getLength(); i++) {
                Node n = nl.item(i);
                if (n.getAttributes().item(0).getNodeValue().equals(imageSize)) {
                    Node fc = n.getFirstChild();
                    if (fc == null) return null;
                    String imgUrl = fc.getNodeValue();
                    if (imgUrl.trim().length() == 0) return null;
                    return new ImageIcon(new URL(imgUrl));
                }
            }

相关问题