Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[发布] 上传音乐自动提取文件信息并写入描述中 (支持mp3/wma/wav)

[复制链接]
魔焰男孩 发表于 2009-4-4 00:14:13 | 显示全部楼层 |阅读模式
本帖最后由 魔焰男孩 于 2009-6-6 20:33 编辑

不多说别的, 上图:



========================================

这个插件的功能是在用户上传音乐文件时如果没有填写描述信息, 则会自动提取文件中包含的歌曲名等信息并将其设置为描述. 插件采用模块化设计, 使用解码器来实现对不同格式的音乐文件的支持. 插件目前只支持 Discuz! 7.0.

这个插件由我原创 (包括自带的解码器), 版权所有, 盗版必究. 转载请注明出处.

========================================

2009-04-05 20:35
今天继续增加 wav 解码器, 2009-04-05 20:35 之前下载的朋友可以从3楼下载 wav.zip 进行解压缩, 并将里面的 wav.php 上传至 include/decoders 目录中.

2009-04-04 11:00
今天已经正式添加 wma 解码器, 请 2009-04-04 11:00 之前下载的朋友从3楼下载 wma.zip 进行解压缩, 并将里面的 wma.php 上传至 include/decoders 目录中.

========================================

安装方法请看2楼.
解码器说明请看3楼.

请 2009-04-04 11:00 之前下载安装的朋友根据4楼的方法进行更新, 以便支持新的解码器.

评分

2

查看全部评分

回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2009-4-4 00:18:50 | 显示全部楼层
本帖最后由 魔焰男孩 于 2009-4-5 20:35 编辑

安装方法

1. 下载压缩包并解压缩, 将里面的文件上传到论坛目录中.
(鉴于太多人光下不回, 压缩包设置为回复可见)

游客,如果您要查看本帖隐藏内容请回复

2. 打开文件 include/post.func.php, 查找:

  1. $attachments = $attacharray = array();
复制代码
在上方添加:

  1. require_once DISCUZ_ROOT.'./include/attachdecoder.func.php';
  2. decoders_load();
复制代码
再查找:

  1. $attach['width'] = 0;
复制代码
在上方添加:

  1. $attachdesc[$key] = $attachdesc[$key] ? $attachdesc[$key] : decode($target, $attach['ext']);
复制代码
保存文件.

3. 安装完成.
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2009-4-4 00:26:47 | 显示全部楼层
本帖最后由 魔焰男孩 于 2009-4-5 20:31 编辑

解码器说明

目前自带的解码器


版本: 0.1.1
格式: mp3
说明: 这个解码器可以读取 mp3 格式中的 ID3v2 和 ID3v1 两种标签, 其中优先顺序为以 ID3v2 为先.



版本: 0.0.9
格式: wma
说明: 这个解码器可以读取 wma 中的标题和艺术家名



版本: 0.2.1
格式: wav
说明: 这个解码器读取 wav 文件的长度、采样频率和比特率


========================================

解码器说明

解码器是一个 php 文件, 只要懂得文件格式和 php 编程, 就可以制作自己的解码器了.
解码器文件放在 include/decoders 目录中, 以 php 作为扩展名.

解码过程需要封装为一个类, 其中必须包含一个函数 decode($filename), 返回值为空或者提取的信息, 输入值 $filename 为上传文件的路径.
解码器中还需要写入下面一段代码:

  1. $decoders = is_array($decoders) ? $decoders : array();
  2. $decoders[ext] = new classname;
复制代码
其中 ext 为这个解码器适用的文件扩展名, classname 为已封装的类的名称.
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2009-4-4 00:27:55 | 显示全部楼层
本帖最后由 魔焰男孩 于 2009-4-4 11:04 编辑

更新

请在 2009-04-04 11:00 之前下载安装的朋友根据下面的方法进行更新:

1. 下载下面的 attachdecoder.func.php, 覆盖 include 目录下的同名文件



2. 打开 include/post.func.php, 查找:

  1. $attachdesc[$key] = $attachdesc[$key] ? $attachdesc[$key] : decode($target);
复制代码
替换为:

  1. $attachdesc[$key] = $attachdesc[$key] ? $attachdesc[$key] : decode($target, $attach['ext']);
复制代码
3. 保存文件即可.
回复

使用道具 举报

缘亦如此 发表于 2009-4-4 00:34:56 | 显示全部楼层
抢位置了
回复

使用道具 举报

HeavenQin 发表于 2009-4-4 00:51:23 | 显示全部楼层
这个要顶
不知道能不能像这样
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2009-4-4 00:53:21 | 显示全部楼层
这个要顶
不知道能不能像这样
HeavenQin 发表于 2009-4-4 00:51

这个要改的东西太多了, 包括数据库结构等
回复

使用道具 举报

xuezhou118 发表于 2009-4-4 00:58:24 | 显示全部楼层
最好再加上自动播放器
好久没见魔焰出山了((em:08))
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2009-4-4 01:02:47 | 显示全部楼层
本帖最后由 魔焰男孩 于 2009-4-4 01:05 编辑
最好再加上自动播放器
好久没见魔焰出山了((em:08))
xuezhou118 发表于 2009-4-4 00:58

我一直在忙别的, 所以...

其实这个东西是我先前写的一个mp3类的一个最简单的应用, 事实上能做的事情远不止这些, 比说mp3音频切割, 这个又可以做成生成mp3的预听文件的一个东西

现在剩下的事情就是wma解码器了...
回复

使用道具 举报

xuezhou118 发表于 2009-4-4 01:05:33 | 显示全部楼层
期待魔兄作品!!
Discuz! Down怎么领取KEY呢?
“领取时间未到, 请您在 12 时后再来. ”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-11-23 03:22 , Processed in 0.111856 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表