MP3文件的结构与编程】的更多相关文章

有一个朋友喜欢听MP3,为了获取MP3,写了一个程序,专门从一家音乐网站上搜索下载mp3,一下子下载了有上千首.这时朋友又犯愁了,这些MP3的歌曲名字都是使用1,2,3,4,..等数字命名,挑选起来十分不方便.虽然MP3播放器能够读出MP3文件信息的歌曲名,但歌曲文件本身的名字却不利于自己管理.于是就想写一个小程序实现MP3自动更名.查了一些资料,研究了一下MP3的文件结构. 研究MP3的结构,就不能不研究ID3标签.ID3标签是MP3音乐档案中的歌曲附加讯息,它能够在MP3中附加曲子的演出者.…
1.引言文件压缩技术的日新月异使得MP3成为时下最烫手的音乐格式,优质的音乐随着0与1的排列迅速散布 到世界各地,撼动人心.何谓MP3?MP3的全称是MPEG Audio Layer 3,它是一种高效的计算机音频编码方案,它以较大的压缩比将音频文件转换成较小的扩展名为.MP3的文件,基本保持原文件的音质.MP3是 ISO/MPEG标准的一部分,ISO/MPEG标准描述了使用高性能感知编码方案的音频压缩,此标准一直在不断更新以满足“质高量小”的追求,现已形成 MPEG Layer 1.Layer…
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string file = @"E:\滴答.mp3";             ShellClass sh = new ShellClass();             Folder dir = sh.NameSpace(Path.GetDirectoryName(file));             F…
作者:郑童宇 GitHub:https://github.com/CrazyZty 1.前言 做了三年左右的Android开发,一直没写过博客,最近正好打算换工作,算是闲一些,就将以前开发所遇到的一些有趣的问题及解决方法写出来,以供他人借鉴. MP3作为音频领域应用最广的压缩方式之一想必大家都有所了解,本篇博文探究的不是MP3著名的压缩方式,而是如何为MP3文件写入ID3Tags.写下本博文的原因是类似的博文太少,以前做这方面的时候,google出来的大多是使用某一软件或库来进行处理,少许涉及代…
Dos头结构: typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraphs WORD e_mina…
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string file = @"E:\滴答.mp3";             ShellClass sh = new ShellClass();             Folder dir = sh.NameSpace(Path.GetDirectoryName(file));             F…
第二次更新,后面的代码有问题,有些专辑图片读取不到.发现是PNG图片的问题.在读取的过程中调试发现,图片帧前10个字节包含了图片的格式,在有些歌曲写着JPEG的格式,数据却是PNG的.先说下思路. jpeg图片的开头和结尾是连续的两个字节FF,D8和FF,D9(16进制),十进制是255,216和255,217. png图片的开头为 十进制数 137 80 78 71 13 10 26 10 十六进制数 89 50 4E 47 0D 0A 1A 0A 结束是00 00 00 00 49 45 4…
一般播放MP3常见的有两种方法,一种是自己解码,另外一种用系统的库,比如MCI,当然如果可以用控件直接用个控件会更方便. 1.      使用mci #include <windows.h> #include <stdio.h> #include <mmsystem.h> #include <shellapi.h> #include <AFXCOM_.H> #pragma comment(lib,"winmm.lib") vo…
MP3文件信息 参考链接:https://www.jianshu.com/p/e368517ec7b9 总结: ID3V1在MP3文件后面;ID3V2在MP3文件前面;现在有些文件是V1的,有些文件是V2的,在获取信息之前要先判断,是V1,还是V2, 当然还有一些MP3是两个都不存在的,就是我们看到的未知. 一.一个MP3文件大致含有如下3个部分: TAG_V2(ID3V2) -- TAG_V2的长度不是固定的,包含了众多关于MP3文件的信息(可选)FrameTAG_V1(ID3V1) -- T…
以前(估计是2003年)编写一个MP3文件信息批量更改器MP3TagChanger,现放上来参考.(VB6编码) 使用方法很简单,会Winamp或者千千静听的就懂使用. http://pan.baidu.com/s/1nu3afbj…
上次把磁性窗体的源码开源了,这次就开源另一个程序源码:MP3文件ID3信息编辑器.这个源码也比较简单,关键在于获取和写入MP3文件的这个ID3的信息即可. 这个操作信息编辑的就封装在MP3ID3.bas文件中. 这里定义了类型ID3,因为ID3v1的信息是一个固定长度的文本串,所以通过这个类型我们能够看出来. Title是该MP3文件的标题,长度是30个字符 Artist是MP3文件的演唱者,长度是30个字符 Album是MP3问价的专辑,长度是30个字符 sYear是MP3文件发布的年份,长度…
首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public List<Mp3Info> getMp3Files(String path) { SDCardRoot = Environment.getExternalStorageDirectory() .getAbsolutePath(); //获取SD卡的路径名 List<Mp3Info> mp3I…
突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下. 效果图: GIF效果图: 主要是依靠2个DLL文件:ID3.dll 和 Interop.Shell32.dll,步骤如下: 1.保存音乐文件到本地 #region 保存音乐文件到本地 string strMp3 = @"~/upload/musics/"; if (!Directory.Exists(Server.MapPath(strMp3))) { Directory.Crea…
现在还用不到,拷贝下来备用,原文链接 2016 年 9 月 第 31 卷,第 9 期 ASP.NET Core - ASP.NET Core MVC 的功能切分 作者 Steve Smith | 2016 年 9 月 | 获取代码 大型 Web 应用比小型 Web 应用需要更好的组织.在大型应用中,ASP.NET MVC(和 Core MVC)所用的默认组织结构开始成为你的负累.你可以使用两种简单的技术来更新组织方法并及时跟进不断增长的应用程序. Model-View-Controller (M…
mp3文件 ID3v2 帧标识的含义 Declared ID3v2 frames The following frames are declared in this draft. 4.20 AENC [[#sec4.20|Audio encryption]] 4.15 APIC [#sec4.15 Attached picture] 4.11 COMM [#sec4.11 Comments] 4.25 COMR [#sec4.25 Commercial frame] 4.26 ENCR [#se…
u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己的u3d程序里即可.贴士:此类问题容易造成局限性,只局限在u3d里面,u3d不支持了就判了死刑,而忘记真正的药是c#,u3d只是汤而已 源码下载…
文件操作(Linux系统编程) 创建一个目录时,系统会自动创建两个目录.和.. C语言实现权限控制函数 #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> int main(int argc , char **argv){ int mode; int mode_u; int mode_g; int mode_o; char *path; ){ prin…
Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,中间没有任何分隔符.Class文件的结构只有两种数据类型:无符号数和表.无符号数以u1.u2.u4和u8来代表1个字节.两个字节.四个字节和八个字节的无符号数,可以用来描述数字.索引引用.数值量或者按UTF-8编码的字符串值.表是有多个无符号数或者其他表作为数据项构成的复合数据类型,习惯性以“_info”结尾.下面是Class文件的结构: 类 型 名 称 数 量 u4 magic 1 u2…
一.简介 1.在onListItemClick()中new Intent,Intent以存储序列化后的mp2Info对象作为参数,启动serivce 2.DownloadService在onStartCommand()中通过intent 获取mp3info,开启新线程,利用HttpDownloader下载文件到sdcard 二.代码1.xml(1)AndroidManifest.xml 增加 <uses-permission android:name="android.permission…
html文件的结构:一个HTML文件是有自己固定的结构的. <html> <head>...</head> <body>...</body> </html> 代码讲解: 1. <html></html>称为根标签,所有的网页标签都在<html></html>中. 2. <head> 标签用于定义文档的头部,它是所有头部元素的容器. 头部元素有<title>.<…
Linux中.a,.la,.o,.so文件的意义和编程实现    Linux下文件的类型是不依赖于其后缀名的,但一般来讲:        .o,是目标文件,相当于windows中的.obj文件        .so 为共享库,是shared object,用于动态连接的,和dll差不多        .a为静态库,是好多个.o合在一起,用于静态连接        .la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息.可以用如下命令查看*.la文件的格式   $file…
1.每帧播放时长都为26ms? 很多博客和文章都提到,Mp3文件每个帧的播放时长(Frame_PlayingTime)是26ms,这个结论是错误的.公式应该是这样的: 一个帧的播放时长=一个帧的采样个数*一次采样的时间=一个帧的采样个数*(1/采样频率)------------------单位是秒. Frame_PlayingTime=Sample_Number * Time_Per_Sample=Sample_Number * (1 / Frame_Sample_Rate) 现在分析一下26m…
一.概述 MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位.MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是 MPEG1 标准中的声音部分,也叫 MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1.Layer2.Layer3,且分别对应 MP1.MP2.MP3 这三种声音文件,并根据不同的用途,使用不同层…
根据前两篇文章的分析,帧分为标签帧和数据帧,MP3文件类型是根据数据帧的类型来分的,文件类型如下表: 位率相等(Constant BitRate) CBR  Mp3文件 位率不等(Variable BitRate) Xing  Mp3文件 VBRI  Mp3文件 一.如何判断一个Mp3文件的类型,CBR文件,VBRI文件还是Xing文件 以功能流程图的形式: 二.文件播放时长的计算问题. 区分了文件类型就可以计算Mp3文件的播放时长了. 1.CBR文件的时长计算(duration) 对于计算CB…
最近收集到一个php获取mp3文件元信息的类,感觉比较方便.现在分享给大家! 下面是使用方式和测试方式: <?php include_once 'mp3file.class.php'; function mp3Time($file) { $m = new mp3file($file); $a = $m->get_metadata(); return $a['Length mm:ss'] ? $a['Length mm:ss'] : 0; } function mp3Info($file) {…
REDOLOG文件里的用户数据和数据文件里的用户数据存储结构相同 几个月前同事给台湾一家公司培训<pg9 ad admin>时,有个学员提及WAL里记录的内容为Query时的SQL语句(比如insert等),同事告知WAL里记录的tuple信息,而非SQL,该学员坚持里面是SQL或SQL+tuple,并说oracle的redo日志里记录的是SQL(不知到这个从哪里知道的,也许是日志挖掘出来SQL的缘由吧).便看了一下源码(还是开源的好). 前面我写过一篇文章<PostgreSQL的存储系…
当新建完一个cocos2d-x的项目后.进入到项目中的proj.android中,会看到例如以下的文件夹结构 在VS先把它编译,然后导入到Eclipse中,导入完后会看到多了几个文件 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2luZ2FiY2Rl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""> 之所以会多出…
认识html文件基本结构 1)这一节中我们来学习html文件的结构:一个HTML文件是有自己固定的结构的. <html> <head>...</head> <body>...</body> </html> 代码解说: 1. <html></html>称为根标签,全部的网页标签都在<html></html>中. 2. <head> 标签用于定义文档的头部,它是全部头部元素的容器…
svn有一个非常标准的文件夹结构,这是. 例如,该项目是proj.svn地址svn://proj/,然后该标准svn布局是 svn://proj/ | +-trunk +-branches +-tags 这 是一个标准的布局,trunk为主开发文件夹,branches为分支开发文件夹,tags为tag存档文件夹(不同意改动).可是详细这几个文件夹应该怎样使 用,svn并没有明白的规范,很多其它的还是用户自己的习惯. 对于这几个开发文件夹.一般的用法有两种.我很多其它的是从软件产品的角度出发 (比…
windows开发环境:window7.vs2012.python2.7.6 Cocos2d-x 3.1.1的完整文件夹例如以下:比起曾经的2.x的版本号来说分类更规范了 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbzEyM18=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""> Build文件夹: wa…