ID3 - base64不能设置为img的src

ID3 - base64 cannot set as src for img

本文关键字:img src 设置 base64 不能 ID3      更新时间:2023-09-26

我刚刚使用了ID3 API来获取音频文件的封面。由API创建的base64确实很好,不能在img标记的src中声明。脚本甚至没有尝试为img标记设置新的src

https://github.com/aadsm/JavaScript-ID3-Reader

这是我的尝试:

<a class="uploaded_file"><img src="/symbol/audio.png"></a>
function getAudioCover(url) {
 var tags = ID3.getAllTags(url);
 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);
    return base64;
 }
 else {
    return "/symbol/audio.png";
 }
}
var uploadedFiles = 0;
var file_cover;
ID3.loadTags("audio.mp3", function() {
 file_cover = getAudioCover("audio.mp3");
 console.log(file_cover);
}, {
 tags: ["picture"]
});
$('.uploaded_file:eq(' + uploadedFiles + ')').find('img').attr("src", file_cover);

控制台给了我这个:https://jsfiddle.net/f1wzbtyh/

我如何让它工作?

是否有jquery或src属性的字符串长度溢出?

在回调函数中调用.attr()file_cover不能在.loadTags调用之外被引用。

ID3.loadTags("audio.mp3", function() {
 file_cover = getAudioCover("audio.mp3");
 console.log(file_cover);
 $('.uploaded_file:eq(' + uploadedFiles + ')')
 .find('img').attr("src", file_cover);
}, {
 tags: ["picture"]
});