【问题标题】:Fetching album art, as JPEG, PNG etc获取专辑封面,如 JPEG、PNG 等
【发布时间】:2010-12-21 15:23:11
【问题描述】:

谁能告诉我是否有任何简单的 Web API 可以将专辑封面作为图像返回,就像 Google 静态地图 API(Google Static Map API?我听说过 Amazon 和 Last.fm 的 API,但不能找不到任何代码(PHP/Perl/Ruby 等网络语言除外)。此外,它们是 REST API。 任何帮助将不胜感激。

有简单的 URL(GET) 查询还是只有 REST/XML 方法?

【问题讨论】:

    标签: c# java c++ amazon last.fm


    【解决方案1】:

    手工操作应该不难。 Album.getInfo 方法的 last.fm 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));
                    }
                }
    

    【讨论】:

    • 从last.fm/api/account 的 last.fm 获得的 api 密钥。您可以使用测试一 b25b959554ed76058ac220b7b2e0a026 但一定要自己购买。
    【解决方案2】:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多