AudioExif.class.php 用PHP进行音频文件头部信息的读取与写入 目前只支持 WMA 和 MP3 两种格式, 只支持常用的几个头部信息
写入信息支持
Title(名称) Artist(艺术家) Copyright(版权) Description (描述) Year(年代) Genre (流派) AlbumTitle (专辑标题)其中 mp3 和 wma 略有不同, 具体返回的信息还可能更多, 但只有以上信息可以被写入;
mp3还支持 Track (曲目编号写入);
对于 MP3 文件支持 ID3v1也支持ID3v2, 读取时优先 v2, 写入时总是会写入v1, 必要时写入v2。
用法说明
由于 wma 使用 Unicode 存取, 故还需要 mb_convert_encoding() 扩展返回数据及写入数据均为 ANSI 编码, 即存什么就显示什么 (中文_GB2312)
require ('AudioExif.class.php');
$AE = new AudioExif([$charset = 'GBK']);
$file = '/path/to/test.mp3';
//1. 检查文件是否完整 (only for wma, mp3始终返回 true)
$AE->CheckSize($file);
//2. 读取信息, 返回值由信息组成的数组, 键名解释参见上方
print_r($AE->GetInfo($file));
//3. 写入信息, 第二参数是一个哈希数组, 键->值, 支持的参见上方的, mp3也支持 Track要求第一参数的文件路径可由本程序写入
$pa = array('Title' ='新标题', 'AlbumTitle' ='新的专辑名称');
$AE->SetInfo($file, $pa);
更新历史
Kainy.20120829:强制写入id3信息,避免因mp3标签类型为APEv2而导致写入信息失败的问题。
hightman.20101010: v0.2更好的支持编码转换, 类对像可以传入 charset 参数, 默认为 gbk.
读取信息则统一返回指定的编码, 以便获得的信息, ID3v1则没有编码直接返回原字符串 写入时id3v2和wma转为ucs-2存储, id3v1均不作转换按iso-8859-1存入.ID3v2编码规范
$00 – ISO-8859-1 (ASCII). $01 – UCS-2 in ID3v2.2 and ID3v2.3, UTF-16 encoded Unicode with BOM.(FE FF, big-endian, FF FE, little-endian) $02 – UTF-16BE encoded Unicode without BOM in ID3v2.4 only. $03 – UTF-8 encoded Unicode in ID3v2.4 only.其他说明
版本: 0.2
作者: hightman
QQ群: 17708754 (非纯PHP进阶交流群)
时间: 2007/01/25
其它: 该插件花了不少时间搜集查找 wma及mp3 的文件格式说明文档与网页, 希望对大家有用.其实网上已经有不少类似的程序, 但对 wma 实在太少了, 只能在 win 平台下通过 M$ 的API 来操作, 而 MP3 也很少有可以在 unix/linux 命令行操作的, 所以特意写了这个模块,如果发现 bug 或提交 patch, 或加以改进使它更加健壮, 请告诉我. (关于 ID3和Wma的文件格式及结构 在网上应该都可以找到参考资料)
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。