簡體   English   中英

如何從 mp3 文件路徑中提取封面藝術(javascript)

[英]How to extract cover art from mp3 file path (javascript)

我正在制作一個音頻播放器,我想壓縮資產占用的空間量(mp3 和圖片)。 我想到的一種方法是將圖像放在 mp3 的元數據中並從那里訪問它,因為您可以刪除正常的圖像文件,它仍然可以工作。 我認為從本地文件路徑(如“./Music/SONGNAME.mp3”)獲取元數據與從<input type="file">獲取元數據幾乎相同。 我為此嘗試了許多不同的代碼,主要要點似乎是這樣的:

jsmediatags.read(("./Music/" + song.audio), {
    onSuccess: function(tag) {
      var tags = tag.tags;
      console.log(tags);

      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/jpeg;base64," + window.btoa(base64String);
        main.thumbnail.setAttribute('src', base64);
      } else {
        main.thumbnail.style.display = "none";
      }
    }
});

(“main”是播放器中的一系列控件和內容,song.audio 是歌曲數組中 object 的一部分。“./Music/”是我的音樂的文件夾路徑)

無論如何,jsmediatags 要么不接受文件路徑,要么我做錯了什么,因為這段代碼幾乎破壞了我的整個音頻播放器。

如果有人可以提供幫助,請做......(我一直在努力解決這個問題......)

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<script  src="https://cdnjs.cloudflare.com/ajax/libs/jsmediatags/3.9.5/jsmediatags.js"></script>
<script type="text/javascript">
    var jsmediatags = window.jsmediatags;
    console.log(jsmediatags)
    // From remote host
jsmediatags.read("https://www.learningcontainer.com/download/sample-mp3-file/?wpdmdl=1676&refresh=62dff4e924c561658844393", {
  onSuccess: function(tag) {
    console.log(tag);
  },
  onError: function(error) {
    console.log(error);
  }
});

</script>
</body>
</html>

這是在客戶端實現它的最簡單方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM