mp3-id3v1和id3v2详解

区分id3v1和id3v2(官网
在这里插入图片描述

id3v2的属性值太多了,就不截图了,想看直接去官网

我们的代码业务一般就是读取展示属性值以及id3v1和id3v2的区分,直接看代码。

binaryajax.js和id3.js的git 地址:https://github.com/bailyxu/js_demol.git

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>mp3</title>
<script type="text/javascript" src="binaryajax.js"></script>
<script type="text/javascript" src="id3.js"></script>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<style>
    #id3 {
        background: #faf;
    }

    #id1 {
        background: #faa;
        margin-top:20px;
    }

    #id2 {
        background: #eaa;
        margin-top:20px;
    }
</style>
<body>
    <pre id="id3"></pre>
    <pre id="id2"></pre>
    <pre id="id1"></pre>

    <script type="text/javascript">

    //id3v2文件
	var file = "Isobel Campbell - Are You Going to Leave Me.mp3";
	var file2 = "Ìïð¥Õç - 04.²»×í²»»á.mp3";

	//id3v1文件
	var file1 = "11.025kHz_64Kbps_DC(2.5).mp3";

    ID3.loadTags(file, ()=> {
        var fileContent = ID3.getAllTags(file)
        console.log(fileContent);
        $("#id3").text(JSON.stringify(fileContent, null, 4));
    });

    ID3.loadTags(file2, ()=> {
        var fileContent = ID3.getAllTags(file2)
        console.log(fileContent);
        $("#id2").text(JSON.stringify(fileContent, null, 4));
    });

    ID3.loadTags(file1, ()=> {
        var fileContent = ID3.getAllTags(file1)
        console.log(fileContent);
        $("#id1").text(JSON.stringify(fileContent, null, 4));
    });
</script>
</body>
</html>

输出结果:

//id3v1

{
    album: ""
    artist: ""
    comment: ""
    genre: "Blues"
    title: ""
    track: 82
    version: "1.1"   //版本为1.xx的文件就是id3v1音乐
    year: "2003"
}
//id3v2
{
	"version": "2.3.0",    //版本为2.xx的文件就是id3v2音乐
	"major": 3,
	"revision": 0,
	"flags": {
		"unsynchronisation": false,
		"extended_header": false,
		"experimental_indicator": false
	},
	"size": 79603,
	"title": "Are You Going to Leave Me?",
	"artist": "Isobel Campbell",
	"album": "Milk White Sheets",
	"track": "11",
	"TPE1": {
		"id": "TPE1",
		"size": 16,
		"description": "Lead performer(s)/Soloist(s)",
		"data": "Isobel Campbell"
	},
	"TIT2": {
		"id": "TIT2",
		"size": 27,
		"description": "Title/songname/content description",
		"data": "Are You Going to Leave Me?"
	},
	"TALB": {
		"id": "TALB",
		"size": 18,
		"description": "Album/Movie/Show title",
		"data": "Milk White Sheets"
	},
	"TRCK": {
		"id": "TRCK",
		"size": 3,
		"description": "Track number/Position in set",
		"data": "11"
	}
}

注意:可能会报跨域的错误,所以尽量在webstorm之类的带有web server的编辑器中打开

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

江醉鱼

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值