mp3音频格式解析
MP3播放器的工作原理

MP3播放器的工作原理MP3播放器是一种便携式音频设备,它能够存储和播放数字音频文件。
它的工作原理涉及到音频编码、存储、解码和音频输出等多个方面。
下面将详细介绍MP3播放器的工作原理。
1. 音频编码MP3播放器支持的音频格式是MP3(MPEG Audio Layer 3),它是一种有损压缩的音频编码格式。
在音频编码过程中,原始音频信号经过一系列的数学算法处理,将冗余信息和听觉上不可察觉的信号部分去除,以减小文件的大小。
这样可以在不明显损失音质的情况下,大幅度减小文件的大小,提高存储效率。
2. 音频存储MP3播放器通常使用闪存作为存储介质。
闪存具有非易失性和高速读写的特点,适合用于存储音频文件。
音频文件经过编码后,以MP3格式存储在闪存芯片中。
闪存芯片的容量大小决定了MP3播放器可以存储的音频文件的数量。
3. 音频解码当用户选择播放某个音频文件时,MP3播放器需要对该文件进行解码。
解码器是MP3播放器中的一个重要组件,它能够将MP3格式的音频文件解码成数字音频信号。
解码器根据MP3文件中的压缩数据,还原出原始音频信号,并将其存储在解码器的缓冲区中。
4. 音频输出解码后的音频信号需要通过耳机或扬声器输出,使用户能够听到音乐或其他音频内容。
MP3播放器通常具有3.5毫米的耳机插孔,用户可以通过插入耳机来听取音频。
耳机通过将电信号转换成声音信号,使用户能够听到音乐的声音。
一些MP3播放器还具有内置扬声器,可以直接通过扬声器播放音频。
5. 控制功能除了音频的编码、存储、解码和输出功能,MP3播放器还具有一些额外的控制功能。
例如,它通常配有操作按钮或触摸屏,用户可以通过这些控制按钮来选择播放、暂停、调整音量、切换音轨等操作。
MP3播放器还可以支持随机播放、循环播放、播放列表等功能,以提供更好的用户体验。
总结:MP3播放器的工作原理涉及音频编码、存储、解码和音频输出等多个方面。
它通过对音频信号的压缩和解码,将数字音频文件存储在闪存中,并通过耳机或扬声器输出音频信号,使用户能够欣赏音乐和其他音频内容。
MP3播放器的工作原理

MP3播放器的工作原理MP3播放器是一种便携式音频设备,它可以播放存储在MP3格式文件中的音乐。
MP3是一种数字音频格式,它可以将音频数据压缩到较小的文件大小而不损失音质。
MP3播放器的工作原理涉及到音频编码、存储、解码和音频输出等多个方面。
1. 音频编码:MP3播放器首先需要将音频源文件进行编码,将其转换为MP3格式。
这个过程称为音频编码。
音频编码是将原始音频信号转换为数字信号的过程。
常用的音频编码算法是MPEG-1 Audio Layer III,简称为MP3。
在编码过程中,MP3编码器会对音频信号进行采样、量化和压缩等处理,以减小文件大小并保持较高的音质。
2. 存储:编码后的MP3文件将被存储在MP3播放器的存储介质中,通常是内置的闪存芯片或者可插拔的存储卡。
存储介质的容量决定了MP3播放器可以存储的音频文件数量。
用户可以通过USB接口或者其他数据传输方式将MP3文件从计算机或者其他设备传输到MP3播放器的存储介质中。
3. 解码:当用户选择播放某个MP3文件时,MP3播放器会将存储介质中的文件读取出来,并进行解码。
解码是将MP3文件中的数字信号转换回摹拟音频信号的过程。
MP3播放器内置的解码器会解析MP3文件的编码格式,并将其解码为音频数据。
4. 音频输出:解码后的音频数据将通过耳机插孔或者内置扬声器输出。
用户可以通过耳机或者扬声器听到解码后的音频信号。
MP3播放器通常具有音量控制功能,用户可以根据自己的需求调整音量大小。
补充说明:MP3播放器还可以具备其他功能,例如显示屏、播放列表、音效调节、音频文件的分类和搜索等。
这些功能可以提升用户的音乐体验和操作便利性。
总结:MP3播放器的工作原理涉及到音频编码、存储、解码和音频输出等多个方面。
首先,音频源文件会经过编码转换为MP3格式,然后存储在MP3播放器的存储介质中。
当用户选择播放某个MP3文件时,播放器会将文件读取出来并进行解码,最后通过耳机或者扬声器输出音频信号。
mp3音频格式解析

MPEG2.5 384 1152 576
【每帧采样数表】
帧长度是压缩时每一帧的长度,包括帧头。它将填充的空位也计算在内。LayerI 的一个空位长 4 字节,LayerII 和 LayerIII 的空位是 1 字节。当读取 MPEG 文件时必 须计算该值以便找到相邻的帧。
注意:因为有填充和比特率变换,帧长度可能变化。 从头中读取比特率,采样频率和填充, LyaerI 使用公式: 帧长度(字节) = 每帧采样数 / 采样频率(HZ) * 比特率(bps)/ 8 +填充 * 4 LyerII 和 LyaerIII 使用公式: 帧长度(字节)= 每帧采样数 / 采样频率(HZ) * 比特率(bps)/ 8 + 填充 例: LayerIII 比特率 128000,采样频率 44100,填充 0 =〉帧大小 417 字节
每帧持续时间(秒) = 每帧采样数 / 采样频率(HZ)
可以这么理解:每帧采用数就是要采取的总数,采样率就是采取的速度,相除 就得到时间。 这样通过计算可知 MPEG1 Layer III 采样率为 44.1KHz 的一帧持续时间为 26.12...不是整数,不过我们权且认为它就是 26 毫秒吧。 如果是 MPEG2 Layer III 采样率为 16KHz 的话那一帧要持续 36 毫秒,这个相差 还是蛮大的,所以还是应该通过计算来获的,当然可以按 MPEG 版本,层数和采样 率来建一个表,这样直接查表就可以知道时间了。
G
1
(9) 填充位(填充用来达到正确的比特率。)
0 – 没有填充
1 – 填充了一个额外的空位
H
1
(8) 私有 bit,可以用来做特殊应用。例如可以
用来触发应用程序的特殊事件。
I
mp3 十六进制解析

mp3 十六进制解析全文共四篇示例,供读者参考第一篇示例:MP3 是一种数字音频格式,其音频数据以十六进制形式存储,通过解析这些十六进制数据,我们可以了解音频文件的结构和内容。
本文将介绍如何解析MP3 文件的十六进制数据,以及其中的一些关键信息。
我们需要明白MP3 文件是如何组织的。
一个典型的MP3 文件由多个帧(frame)组成,每个帧包含一段音频数据。
每个帧的开头是一个帧同步字(frame sync),用于标识帧的开始。
帧同步字的值为0xFF,即十进制的255,表示帧的开始。
在帧同步字之后的一部分是帧头(frame header),用于描述帧的一些重要信息,包括比特率、采样率、声道模式等。
帧头通常占据一个字节,我们可以通过解析这个字节来获取这些信息。
帧头字节的格式如下:- 最高两位为帧同步字的保留位,固定为11;- 接下来四位为MPEG 版本(Version ID),用于指示MPEG 标准的版本;- 接下来两位为层信息(Layer),表示音频数据的编码层;- 接下来一位为保护位(CRC check),用于指示是否启用CRC 校验。
接着是帧头中的比特率(bitrate)字段,用于表示音频数据的比特率。
比特率字段的取值与MPEG 版本、层信息有关,不同的组合对应不同的比特率。
在十六进制数据中,我们可以通过解析比特率字段来获取比特率信息。
在帧头中还包括声道模式(channel mode)字段,用于表示音频数据的声道模式,包括单声道、立体声、双声道和立体声(joint stereo)模式。
解析声道模式字段可以帮助我们了解音频数据的声道配置。
通过解析MP3 文件的十六进制数据,我们可以获取关于音频文件的详细信息,包括比特率、采样率和声道模式等。
这些信息对于音频文件的解码和播放非常重要,通过深入了解MP3文件的十六进制结构,我们可以更好地理解数字音频文件的工作原理。
MP3 文件的十六进制解析是一个有趣且重要的技术,通过解析帧头的一些关键字段,我们可以了解MP3文件的结构和内容,进一步探索数字音频文件的工作原理。
MP3解码原理范文

MP3解码原理范文1. 解析文件结构:MP3文件由一系列帧组成,每一帧包含有关音频数据的信息。
解码器首先分析文件头部,确定音频参数,如采样率、比特率、声道数等。
2. 帧同步:解码器从文件中读取每一帧,通过帧同步标识进行帧的边界同步。
每一帧的长度固定,帧同步标识的作用是在文件中定位帧的位置。
3. 解析帧结构:解码器解析每一帧的结构,在帧头中包含有关音频数据的详细信息,如声道模式、采样率等。
根据这些信息,解码器可以正确地解码音频数据。
4. 解码压缩数据:MP3使用了一种被称为MPEG音频层III的压缩算法。
解码器对压缩的数据进行解码,还原为原始的音频数据。
解码算法主要包括子带滤波、量化、哈夫曼编码和逆变换等步骤。
5. 还原音频数据:解码器将解码后的音频数据转换为模拟信号,输出到音频设备进行播放。
还原过程包括去量化、逆子带滤波和逆变换等步骤。
子带滤波是MP3解码过程中的重要步骤之一、在压缩编码过程中,音频信号被分解成多个子频带,每个子频带对应不同频率范围的音频信号。
解码器使用滤波器对这些子频带进行滤波,以还原原始音频信号的频谱信息。
量化过程是对音频信号进行降低精度的处理。
在压缩编码过程中,音频信号的幅度值被量化为一系列离散的值。
解码器通过逆量化过程将这些离散值还原为原始的幅度值。
在压缩编码过程中,使用了哈夫曼编码对量化后的音频数据进行进一步的压缩。
解码器通过解码哈夫曼编码还原量化数据。
最后,解码器对还原的音频数据进行逆变换,将频域信号转换为时域信号,以便于音频的播放和处理。
总之,MP3解码过程涉及文件结构解析、帧同步、帧结构解析、解码压缩数据、还原音频数据等多个步骤。
通过这些步骤,解码器可以将经过压缩编码的MP3音频文件还原为原始的音频数据,实现高质量的音频播放。
MP3文件格式解析

MP3文件格式解析Peter Lee 2008-06-05目录一、概述二、整个MP3文件结构三、MP3帧格式1. 帧头格式2. MAIN_DATA四、ID3标准1. ID3V12. ID3V2五、MP3文件实例剖析六、资料一、概述MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。
MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。
MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和MP2 的压缩率分别为4:1 和6:1-8:1,而MP3 的压缩率则高达10:1-12:1,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB的存储空间,而经过MP3 压缩编码后只有1MB 左右。
不过MP3 对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3 采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。
二、整个MP3文件结构MP3文件大体分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1)ID3V2包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量。
Frame...Frame一系列的帧,个数由文件大小和帧长决定每个FRAME的长度可能不固定,也可能固定,由位率bitrate决定每个FRAME又分为帧头和数据实体两部分帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立ID3V1包含了作者,作曲,专辑等信息,长度为128BYTE。
音频编码和解码的原理和常见格式

音频编码和解码的原理和常见格式音频编码和解码是数字音频处理中的重要环节,它们影响着音频信号的传输和存储效率,以及音质的表现。
本文将介绍音频编码和解码的原理,并介绍几种常见的音频格式。
一、音频编码的原理音频编码是将模拟音频信号或数字音频信号转化为能够有效传输和存储的数字数据的过程。
音频编码的目标是在保证音质的前提下,尽可能减少数据的存储空间和传输带宽。
1. 采样和量化音频信号是连续的模拟信号,为了将其转化为数字信号,首先需要对其进行采样和量化。
采样是指以一定的时间间隔对音频信号进行抽样,将每个采样点的幅值转化为数字表示。
量化则是对采样点的幅值进行量化,将其映射到离散的数字级别上。
2. 压缩编码在音频编码的过程中,为了减少数据量,常常会采用压缩编码的方法。
压缩编码可以通过减小音频数据的冗余信息来达到节省空间的目的。
常见的压缩编码算法有无损压缩和有损压缩两种。
- 无损压缩:无损压缩是通过去除冗余信息来减小数据大小,但是在解压缩后可以完全还原原始音频信号。
常见的无损压缩算法有无损预测编码、熵编码等。
- 有损压缩:有损压缩是在压缩编码的过程中,除了去除冗余信息外,还通过减少对人耳听感无明显影响的信号部分来进一步减小数据大小。
常见的有损压缩算法有MP3、AAC、WMA等。
二、音频解码的原理音频解码是将编码后的音频数据还原为原始音频信号的过程。
解码过程需要对编码过程中使用的算法进行相应的逆操作,以重新生成原始的音频数据。
1. 解压缩解码首先,解码器需要对音频数据进行解压缩,还原为压缩编码前的数据。
对于无损压缩算法,解压缩过程会完全还原原始音频数据;对于有损压缩算法,解压缩过程会在还原数据的同时,对损失的部分进行补偿。
2. 数字到模拟转换解码后得到的音频数据是数字信号,为了让人耳能够听到音频,需要将其转换为模拟信号。
这一过程称为数模转换,通常使用数模转换器(DAC)来实现。
三、常见的音频格式在实际应用中,根据不同的需求和使用场景,人们开发了许多不同的音频格式。
MP3播放器的工作原理

MP3播放器的工作原理引言概述:MP3播放器作为一种便携式音频设备,已经成为人们日常生活中不可或者缺的一部份。
然而,不少人对于MP3播放器的工作原理并不了解。
本文将详细介绍MP3播放器的工作原理,包括数字音频编码、存储与传输、解码与放大、音频输出和控制系统。
一、数字音频编码:1.1 声音采样:MP3播放器首先将声音信号转换为数字信号。
这个过程称为采样,它将连续的声音信号转换为离散的数字信号。
采样率决定了每秒钟采集的样本数,常见的采样率有44.1kHz和48kHz。
1.2 声音量化:采样后的声音信号是连续的摹拟数值,需要进行量化处理,将摹拟数值转换为离散的数字数值。
量化级别越高,声音的质量越好,但文件大小也会增加。
1.3 声音压缩:为了减小音频文件的大小,MP3播放器使用压缩算法对声音进行压缩。
这种压缩算法能够去除人耳难以察觉的音频信号冗余,从而减小文件大小,但同时也会损失一定的音质。
二、存储与传输:2.1 存储介质:MP3播放器通常使用闪存作为存储介质,它具有体积小、分量轻、读写速度快的特点,适合作为便携式设备的存储介质。
2.2 文件格式:MP3播放器支持的音频文件格式主要是MP3格式,这是一种被广泛使用的音频压缩格式。
此外,一些MP3播放器还支持其他格式,如WAV、AAC等。
2.3 数据传输:MP3播放器通过USB接口与电脑进行数据传输。
用户可以将音频文件从电脑拷贝到MP3播放器中,或者将MP3播放器中的音频文件传输到电脑。
三、解码与放大:3.1 解码器:MP3播放器内部搭载了解码器芯片,用于将压缩的MP3音频文件解码为数字音频信号。
解码器会还原压缩前的音频信号,以便后续的放大和输出。
3.2 数字放大:解码后的数字音频信号需要经过数字放大器进行放大。
数字放大器可以增加音频信号的幅度,以提供足够的音量。
3.3 摹拟放大:经过数字放大的信号被转换为摹拟信号,并经过摹拟放大器进一步放大。
摹拟放大器可以将信号放大到适合耳机或者扬声器的音量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解析MP3音频格式
一、概述
MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。
MP3
的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts
Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG
音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压
缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分
别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不
同层次的编码。
MPEG音频编码的层次越高,编码器越复杂,压缩率也
越高,MP1 和MP2 的压缩率分别为4:1 和6:1-8:1,而MP3 的压
缩率则高达10:1-12:1,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB的存储空间,而经过MP3 压缩编码后只有1MB 左右。
不过
MP3 对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3
采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后
用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排
列,最后形成具有较高压缩比的MP3 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。
名词解释:
比特率是指每秒传送的比特(bit)数。
单位为bps(Bit Per Second),比特率
越高,传送的数据越大。
比特率比特率表示经过编码(压缩)后的音、视频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最小的单位,要么是0,要么是1。
比特率与音、视频压缩的关系,简单的说就是比特率越高,音、视频的质量就越好,但编码后的文件就越大;如果比特率越少则情况刚好相反。
采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,单位用赫兹(Hz)来表示。
采样频率的倒数是采样周期(也称为采样时间),它表示采样之间的时间间隔。
这里要注意不要将采样率与位速相混淆。
二、MP3文件整体结构
三、MP3结构具体分析
1.ID3V2标签
每个ID3V2.3 的标签都一个标签头和若干个标签帧或一个扩展标签头组成。
关于曲目的信息如标题、作者等都存放在不同的标签帧中,扩展标签头和标签帧并不是必要的,但每个标签至少要有一个标签帧。
标签头和标签帧一起顺序存放在MP3 文件的首部。
标签头
在文件的首部顺序记录10 个字节的ID3V2.3 的头部。
数据结构如下:char Header[3]; /*必须为"ID3"否则认为标签不存在*/
char Ver; /*版本号ID3V2.3 就记录3*/
char Revision; /*副版本号此版本记录为0*/
char Flag; /*存放标志的字节,这个版本只定义了三位,稍后详细解说*/
char Size[4]; /*标签大小,包括标签头的10 个字节和所有的标签帧的大小*/
注:最后4个字节表示ID3V2标签的大小,在实际寻找首帧的过程中,我发现大
部分的mp3文件的标签大小是包含标签头的,但有的又是不包含的,可能是某
些mp3编码器写标签的BUG,所以为了兼容只好认为其是包含的,如果按大小
找不到,再向后搜索,直到找到首帧为止。
计算ID3V2标签帧的大小:
最后四个字节表示,但每个字节只用7 位,最高位不使用恒为0。
所以格式如
下:
0xxxxxxx 0xxxxxxx 0xxxxxxx 0xxxxxxx
计算大小时要将0 去掉,得到一个28 位的二进制数,就是标签大小(不懂为什
么要这样做),计算公式如
下:
int ID3V2_Size;
ID3V2_Size = (Size[0]&0x7F)*0x200000
+(Size[1]&0x7F)*0x4000
+(Size[2]&0x7F)*0x80
+(Size[3]&0x7F)
(2)标签帧
每个标签帧都有一个10 个字节的帧头和至少一个字节的不固定长度的内容组成。
它们也是顺序存放在文件中,和标签头和其他的标签帧也没有特殊的字符分隔。
得到一个完整的帧的内容只有从帧头中的到内容大小后才能读出,读取时要注意大小,不要将其他帧的内容或帧头读入。
一般我们从标签头中获取信息计算出整个ID3V2标签的大小即可,对于ID3V2的标签帧就不再仔细分析。
2.音频数据
数据帧往往有多个,至于有多少,由文件大小和帧大小来决定。
每个帧都有一个四字节长的帧头,接下来可能有两个字节的CRC校验,其存在由帧头中的具体信息决定。
接着就是帧的实体数据,也就是MAIN_DATA了。
(1)音频数据帧的帧头
格式如下:
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM
【帧头信息表】
【比特率索引表】
【采样率索引表】
(2)如何计算音频数据帧长度
我们首先区分两个术语:帧大小和帧长度。
帧大小即每帧采样数表示一帧中采样的个数,这是恒定值。
其值入下表所示
【每帧采样数表】
帧长度是压缩时每一帧的长度,包括帧头。
它将填充的空位也计算在内。
LayerI的一个空位长4字节,LayerII和LayerIII的空位是1字节。
当读取MPEG文件时必须计算该值以便找到相邻的帧。
注意:因为有填充和比特率变换,帧长度可能变化。
从头中读取比特率,采样频率和填充,
LyaerI使用公式:
帧长度(字节)= 每帧采样数/ 采样频率(HZ) * 比特率(bps)/ 8 +填充* 4 LyerII和LyaerIII使用公式:
帧长度(字节)= 每帧采样数/ 采样频率(HZ) * 比特率(bps)/ 8 + 填充例:
LayerIII 比特率128000,采样频率44100,填充0
=〉帧大小417字节
(3)计算每帧的持续时间
之前看了一些文章都说mp3的一帧的持续时间是26ms,结果在实际程序的编写中发现无法正确按时间定位到帧,然后又查了一些文章才知道,所谓26ms一帧只是针对MPEG1 Layer III而且采样率为44.1KHz来说是对的,但mp3文件并不都是如此,其实这个时间也是可以通过计算来获得,下面给出计算公式
每帧持续时间(秒) = 每帧采样数/ 采样频率(HZ)
可以这么理解:每帧采用数就是要采取的总数,采样率就是采取的速度,相除就得到时间。
这样通过计算可知MPEG1 Layer III 采样率为44.1KHz的一帧持续时间为
26.12...不是整数,不过我们权且认为它就是26毫秒吧。
如果是MPEG2 Layer III 采样率为16KHz的话那一帧要持续36毫秒,这个相差还是蛮大的,所以还是应该通过计算来获的,当然可以按MPEG版本,层数和采样率来建一个表,这样直接查表就可以知道时间了。
3.ID3V1标签
ID3v1标签用来描述MPEG音频文件。
包含艺术家,标题,唱片集,发布年代和流
派。
另外还有额外的注释空间。
位于音频文件的最后固定为128字节。
可以读取该文件的最后这128字节获得标签。
以最后128个字节的头三个字节为“TAG”
作为有ID3V1的判断依据。
结构如下:
AAABBBBB BBBBBBBB BBBBBBBB BBBBBBBB
BCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCD
DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE
EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG
有了上述的这些信息,我们就可以自己写代码,从MP3文件中抓取信息以及修改文件名了。
但是,如果真的想写一个播放软件,还是需要读它的数据帧,并进行解
码。
四、解析方法
当你想读取MPEG文件的信息时,解析前三个字节,判断是否有ID3V2标签,有则根据上面的方法算出ID3V2标签的总大小,这样就找到了音频数据帧的第一帧,读取它的头信息,获取比特率、采样率、MPEG版本号、Layer描述号等信息,根据上面提供的方法算出每帧的长度和每帧持续时间,对于定比特率的其它帧是相同的,也就是说解析第一帧就达到了目的。
但这也不是所有情况。
变比特率的MPEG文件使用使用所谓比特变换,也就是说每一帧的比特率依照具体内容变化。
这时就需要你每一帧都解析。