使用getID3向.mp3文件写入ID3v2 TXXX标签
目录
简介
最近有一个项目需要实现将canvas画板的笔迹记录写入在mp3的ID3v2的TXXX标签
- getID3官网
- ID3-Wikipedia
ID3标签
ID3,一般是位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息,ID3信息分为两个版本,v1和v2版。 其中:v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息。 v2版一般位于mp3的开头,可以存储歌词,该专辑的图片等大容量的信息。 —— [ 百度百科 ]
说明
> 笔迹数据为具有一定长度的字符串,而TXXX标签就是用来保存文本数据
实现代码
将笔迹数据写入.mp3文件:
require_once('./getid3/write.id3v2.php');
$tagwriter = new getid3_write_id3v2;
//文件路径
$tagwriter->filename = './test.mp3';
//标签内容
$TagData = array(
'TXXX' => array(
array(
'encodingid' => 1,
'description' => 'TXXX',
'data' => '笔迹数据'))
);
$tagwriter->tag_data = $TagData;
//使用WriteID3v2方法写入
if ($tagwriter->WriteID3v2()) {
echo 'Successfully wrote tags<br>';
if (!empty($tagwriter->warnings)) {
echo 'There were some warnings:<br>' .implode('<br><br>', $tagwriter->warnings);
}
} else {
echo 'Failed to write tags!<br>' . implode('<br><br>', $tagwriter->errors);
}
读取.mp3文件TXXX标签:
require_once('./getid3/getid3.php');
$filename = './test.mp3';
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
$map['filename']=$ThisFileInfo['filename'];
$map['TXXX']=$ThisFileInfo['id3v2']['TXXX'][0]['data'];
exit(json_encode($map));