如何获得 mp3 文件的封面?

how can I get the cover of an mp3 file?

我有一个 mp3 文件,当我用 windows 媒体播放器阅读它时,它有专辑的封面,所以我想知道是否有办法在 javascript 或 jQuery

阅读更多内容 URL:http://www.richardfarrar.com/embedding-album-art-in-mp3-files/

您想要的是使用 ID3 header,其中存储艺术家数据和更多信息。图像也可以存储在这些 header 中。可能这也是在您拥有的 mp3 文件中完成的。

https://github.com/aadsm/JavaScript-ID3-Reader 这样的库可以使用 Javascript 从 MP3 中读取这些数据。

从示例中借用(注意:您需要上面的库才能运行此代码):

 function showTags(url) {
      var tags = ID3.getAllTags(url);
      console.log(tags);
      document.getElementById('title').textContent = tags.title || "";
      document.getElementById('artist').textContent = tags.artist || "";
      document.getElementById('album').textContent = tags.album || "";

      var image = tags.picture;
      if (image) {
        var base64String = "";
        for (var i = 0; i < image.data.length; i++) {
            base64String += String.fromCharCode(image.data[i]);
        }
        var base64 = "data:" + image.format + ";base64," +
                window.btoa(base64String);
        document.getElementById('picture').setAttribute('src',base64);
      } else {
        document.getElementById('picture').style.display = "none";
      }
    }

ID3 不再维护。在这里查看。

var jsmediatags = require("jsmediatags");

jsmediatags.read("./song.mp3", {
  onSuccess: function(tag) {
    console.log(tag);
    var image = tag.tags.picture;
    document.getElementById('title').innerHTML = tag.tags.title;
    document.getElementById('artist').innerHTML= tag.tags.artist;
    document.getElementById('album').innerHTML = tag.tags.album;
    document.getElementById('picture').title = tag.tags.title;
      if (image) {
        var base64String = "";
        for (var i = 0; i < image.data.length; i++) {
            base64String += String.fromCharCode(image.data[i]);
        }
        var base64 = "data:" + image.format + ";base64," +
                window.btoa(base64String);
        document.getElementById('picture').setAttribute('src',base64);
      } else {
        document.getElementById('picture').style.display = "none";
        document.getElementById('picture').title = "none";
      }
  },
  onError: function(error) {
    console.log(':(', error.type, error.info);
  }
});