【问题标题】:how to get album art from mp3 using jsmediatags如何使用 jsmediatags 从 mp3 获取专辑封面
【发布时间】:2017-07-29 06:14:19
【问题描述】:

大家好,我有一个像 song.mp3 这样的 mp3 文件,我想获取它的专辑封面和艺术家姓名,然后想在我的 html 网页中显示。请告诉我怎么做?

如何从 mp3 文件中获取专辑并在我的 html img 标签中显示它 我看到这个例子https://github.com/aadsm/JavaScript-ID3-Reader/blob/master/example/index.html#L46这对输入文件很好但是我想从存储在我网站中的song.mp3之类的url获取专辑

请将专辑图片存储在变量中,然后在 html img 标签中显示,谢谢

【问题讨论】:

    标签: javascript image mp3


    【解决方案1】:

    https://github.com/aadsm/jsmediatags 是一个很好的起点。

    在包含 jsmediatags 之后。创建一个变量(注意我使用的是浏览器示例)

    var jsmediatags = window.jsmediatags;

    使用该变量,您可以获取文件的 ID3 标签,如下所示;

    var tags = {};
    jsmediatags.read(your_media_file, {
       onSuccess: function(tag) {
          tags = tag;
       }, 
       onError: function(error) {
          // handle error
          console.log(error);
       }
    });
    

    tags 对象具有您想要的属性等等;

    {
       artist : 'name of artist',
       album : 'name of album',
       track : 'track number',
       title : 'track title',
       genre : 'track genre',
       picture : {...}, // object with track art details
       .
       .
       .
    }
    

    然后您可以按如下方式生成专辑封面;

    var picture = tags.tags.picture; // create reference to track art
    var base64String = "";
    for (var i = 0; i < picture.data.length; i++) {
        base64String += String.fromCharCode(picture.data[i]);
    }
    var imageUri = "data:" + picture.format + ";base64," + window.btoa(base64String);
    

    【讨论】:

    • 您好,我使用了您的代码,但遇到了一些问题,请查看我的代码并告诉我错误并更正它。它显示未定义
    • picture 是未定义的变量。在for 循环之前创建对它的引用,如所示,即var picture = tags.tags.picture;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多