如何在图像标签中显示mp3文件中的图像

Posted

技术标签:

【中文标题】如何在图像标签中显示mp3文件中的图像【英文标题】:how to display the image inside a mp3 file in a image tag 【发布时间】:2020-02-06 16:53:09 【问题描述】:

您好,我正在尝试使用 html 和 reactjs 在图像标签中显示从 mp3 文件中检索到的图像。这是我使用的代码。

   async getImageFromUploadedFile(framesRetrieved)
        const imageArrayBufferRetrieved = framesRetrieved[4].value.data;
        var blob = new Blob([imageArrayBufferRetrieved]);
        var reader = new FileReader();
        reader.onload = function(event)
        var base64 =   event.target.result;
        ;
        reader.readAsDataURL(blob);
    

当我控制台 base64 图像时,我得到了类似的东西。 screen capture of the base64 image

我尝试使用此代码显示检索到的图像

            <Grid item xs=12>
                <Grid item container xs=6>
                <div id="title"></div>
               <img src="data:image/png;base64,base64"/>
               <div id="audioContainer"></div>
               <div id="lyricsContainer"></div>
                </Grid>
            </Grid>

但是图片没有出现在标签中。没有控制台错误。如果您能提供帮助,那就太好了。谢谢。

【问题讨论】:

您是说从 mp3 文件中获取像专辑封面这样的图像吗? ***.com/questions/29881237/… 这看起来很有帮助 github.com/aadsm/jsmediatags 这能回答你的问题吗? how can I get the cover of an mp3 file? 非常感谢,我可以通过 github.com/aadsm/jsmediatags 完成。我猜我用错了阅读器 【参考方案1】:

我可以使用https://www.npmjs.com/package/jsmediatags修复

首先你必须使用 npm install jsmediatags --save 安装 jsmediatags 库

这是我用来获取 mp3 图像的代码

  var jsmediatags = require("jsmediatags");

  new jsmediatags.Reader(content)
        .setTagsToRead(["title", "artist","picture","lyrics"]).read(
         onSuccess: function(tag) 

  var tags = tag.tags;

  var base64String = "";

  for (var i = 0; i < tags.picture.data.length; i++) 
    base64String += String.fromCharCode(tags.picture.data[i]);
  
  var dataUrl = "data:" + tags.picture.format + ";base64," +window.btoa(base64String);

  document.getElementById('cover').setAttribute('src',dataUrl);
    ,
    onError: function(error) 
      console.log(':(', error.type, error.info);
    
  );

【讨论】:

以上是关于如何在图像标签中显示mp3文件中的图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java ID3 标签库从 MP3 文件中获取图像

Flex/air mobile - 显示来自 SD 卡的所有 mp3 歌曲,带有 id3 信息和海报图像

如何显示来自 AttachedPicture | 的图像扑

使用 PHP 将图像添加到 mp3 文件的最佳方法?

可以播放 MP3 并显示背景图像的 JavaScript 播放器?

从 mp3/wav 文件生成声波图像?