PHP之音乐ID3扩展

  不知道你有没有这样的经历,一些从网上下载的MP3音乐,文件名明明是01、02这样的序号,但播放时却能显示出歌曲的正确名称来,是不是有点奇妙?

这其实都是ID3在暗中相助

  ID3,一般是位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息,ID3信息分为两个版本,v1和v2版。 其中:v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息。 v2版一般位于mp3的开头,可以存储歌词,该专辑的图片等大容量的信息。

  好了,背景就介绍到这里



PHP的ID3扩展是由PECL提供的,主要用途由,获取和设置mp3音频文件的ID3信息,包括该mp3的歌手,标题,专辑名称,年代,风格,备注

1.安装ID3扩展【 http://pecl.php.net/package/id3.】

 wget http://pecl.php.net/get/id3-0.2.tgz

 tar zxvf id3-0.2.tgz

cd id3-0.2.tgz

 ./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

 ps:我这边make的时候报错了,id3.c:196:1: error: unknown type name ‘function_entry‘,解决办法,id3.c文件的196行的function_entry改成zend_function_entry就可以了

然后在php.ini中添加编译好的扩展文件id3.so

重启服务,在phpinfo中可以看到id3扩展信息

2.函数使用

  首先我们找一个mp3资源

id3扩展一共提供9个函数

id3_?get_?frame_?long_?name //不研究

id3_?get_?frame_?short_?name //不研究

id3_?get_?genre_?id(genre_name)  //通过风格名称获取风格id

id3_?get_?genre_?list(void) //列出所有的风格键值对照表

id3_?get_?genre_?name(genre_id) //通过风格id获取风格名称

id3_?get_?tag(filename) //获取mp3的tag信息

id3_?get_?version(void) //获取id3扩展版本号

id3_?remove_?tag(filename) //删除mp3的tag信息

id3_?set_?tag(filename,tags) //设置mp3的tag信息

3.代码示例

<?php
$filename = ‘4007108962.mp3‘;

$tag = id3_get_tag($filename);
var_dump($tag);
//array(5){["title"]=>string(0) ""["artist"]=>string(2) "??"["album"]=>string(0) ""["comment"]=>string(0) ""["genre"]=>int(255)}

$version = id3_get_version($filename);
echo $version;
//1

$tags = array(‘title‘=>‘标题‘,‘artist‘=>‘作者‘,‘album‘=>‘专辑‘,‘year‘=>‘2016‘,‘genre‘=>8,‘comment‘=>‘评论,最多30个字节‘);
$set = id3_set_tag($filename,$tags);
var_dump($set);
//true

$genre_name = id3_get_genre_name($tag[‘genre‘]);
var_dump($genre_name);
//Jazz

$genre_id = id3_get_genre_id(‘Jazz‘);
var_dump($genre_id);
//8

$remove = id3_remove_tag($filename);
var_dump($remove);
//true

$list = id3_get_genre_list();
var_dump($list);
//Array([0] => Blues [1] => Classic Rock[2] => Country [3] => Dance .......[147] => SynthPop )
时间: 2024-08-24 17:28:28

PHP之音乐ID3扩展的相关文章

月半小夜曲下的畅想--DOCTYPE模式

猜猜我现在在干嘛?看在天朗气清的份上,告诉你好了,我现在做在电脑旁,然后听着月半小夜曲,然后思绪开始飞扬了,此时的我感觉很惬意,音乐的旋律虽伤感,但好像触碰到内心的柔软,心弦为之一动,就是那么好听,在这动听的乐曲下,我想到了doctype,因为它也让我伤感,让我动心,还得动脑. 什么是DOCTYPE? 百度百科上的介绍: 文档类型标签,该标签是将特定的标准通用标记语言或者XML文档(网页就是其中一种)与文档类型定义(DTD)联系起来的指令.该标记应该出现在文件的第一行.它在文档中出现的格式如下:

将 QQ 音乐、网易云音乐和虾米音乐资源「整合」一起的Chrome 扩展Listen 1

原文地址:http://whosmall.com/?post=418 本文标签: Chrome扩展 Chrome浏览器 Chrome扩展Listen1 音乐资源整合 Listen1安装方法 在 Chrome 上安装了这款名为 Listen 1 的插件,妈妈可是再也不用担心你找不到想听的歌了.它将 QQ 音乐.网易云音乐以及虾米音乐的音乐资源「整合」在了一起,你只需要输入音乐关键词,就可以方便地三大曲库中跳转搜索. 安装方法 Listen 1 的安装方法与一般的 Chrome Extension

mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换等

mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换(上) MP3文件格式(二)---ID3v2 图:ID3V1标签结构 图:ID3V2标签结构 图:ID3V2头结构 图:ID3V2帧头结构 1.帧标识  用四个字符标识一个帧,说明一个帧的内容含义,常用的对照如下:  TIT2=标题 表示内容为这首歌的标题,下同  TPE1=作者  TALB=专集  TRCK=音轨 格式:N/M  其中N为专集中的第N首,M为专集中共M首,N和M为AS

Plex音乐名称乱码原因id3版本

标签编码支持情况: ID3v1:ISO-8859-1ID3v2 2.3:ISO-8859-1.UTF-16ID3v2 2.4:ISO-8859-1.UTF-16.UTF-8APEv2:UTF-8 修改标签可以使用 Mp3tag(Linux mid3iconv) http://www.mp3tag.de/download.html 我选择使用UTF-8,把MP3标签版本转换为ID3v2.4.

在GNU/Linux下将CD音乐转为mp3

以前我欣赏古典音乐都是听的CD,因而珍藏了不少光盘以及下载到电脑上的ape与flac格式的音乐文件.随着手机硬件性能(如电池续航能力.处理器速度.音质.存储容量等)和软件功能(音乐播放器对于曲目的管理)的提升,便需要考虑如何将这些资源转换成高质量的mp3文件放到手机上聆听.本文介绍如何基于GNU/Linux下的Audacity.k3b.easytag软件,以及自己写的Bash脚本程序来实现此功能. 从光盘抓取音乐并转为mp3 k3b是KDE环境下默认的光盘刻录与抓取软件.其界面如下图所示. 选择

查找重复的音乐

因为音乐U盘长期使用,保留住一些喜欢的歌,后续会下载更新一些,慢慢就对歌曲进行了分类放入不同的文件夹,这样就会很容易弄一些重复的歌曲,下面写的一段python小程序找出重复的歌曲. 1 # coding=utf-8 2 import sys 3 import os 4 5 # 获取所有的歌曲 6 def find_audios(audio_root, audio_exts, audio_list): 7 # 如果即不是目录也不是文件函数返回 8 if not os.path.isdir(audi

HTML5项目笔记4:使用Audio API设计绚丽的HTML5音乐播放器

HTML5 有两个很炫的元素,就是Audio和 Video,可以用他们在页面上创建音频播放器和视频播放器,制作一些效果很不错的应用. 无论是视屏还是音频,都是一个容器文件,包含了一些音频轨道,视频轨道和一些元数据,这些是和你的视频或者音频控件绑定到一块的,这样才形成了一个完整的播放组件. 浏览器支持情况: 浏览器 支持情况 编解码器 Chrome 3.0 Theora . Vorbis .Ogg H.264 . AAC .MPEG4 FireFox 3.5 Theora . Vorbis .Og

实现 60fps 的网易云音乐首页

网易云音乐是一款很优秀的音乐软件,我也是它的忠实用户.最近在研究如何更好的开发TableView,接着我写了一个Model驱动的小框架 - MDTable.为了去验证框架的可用性,我选择了网易云音乐的首页来作为Demo,语言是Swift 3. 本文的内容包括: 实现网易云音乐首页的思路如何建立一个轻量级的UITableViewController(不到100行)性能瓶颈原因以分析及如何优化到接近60fps Note:本文并没有用Reveal去分析网易云音乐iOS客户端的原始UI布局,所以实现方式

Chrome 扩展 Stylish :给不喜欢某个网站一键「换肤」

原文地址:http://whosmall.com/?post=419 本文标签: Chrome扩展 Chrome浏览器 Chrome插件 Chrome扩展Stylish Stylish是什么 Stylish 是什么? 开门见山,Stylish 的作用是,它可以把百度首页变成这样: 它还能把知乎「拍扁」,让微博网页版变得简洁无比,让 Feedly 用上Material Design-- 这个神奇的 Stylish实际上是一个浏览器插件,适用于 Chrome,Firefox,Opera 以及 Saf