手机里的歌曲移动到mp3里怎么mp3充电时才能开机有歌词

怎么下载歌曲到手机上
怎么下载歌曲到手机上
学习啦【网络基础知识】 恒辉
  现在用手机和MP3,MP4听歌的人很多,开始可能不知道怎么下载歌曲手机上,MP3、MP4里,今天就教教新人怎样下载歌曲,如何下载歌曲到电脑里。
  先把你的手机内存卡或是MP3,MP4,用数据线链接上电脑。
  以百度MP3搜索歌曲下载为例,http://music.baidu.com,下载软件是迅雷。现在基本上电脑里都装了迅雷下载。
  1、先打开百度网站www.baidu.com 选择&音乐&搜索,然后输入你想搜的歌名如:星月神话。
  2、输入歌名后,点&百度一下&搜索,会列出搜索出的星月神话的歌曲列表。(这里的歌曲格式要注意下,一般选MP3,因为大多数手机,MP3都只支持这个格式,MP4支持的格式多些。其他格式下载了也听不了。)
  3、进入这个歌曲下载列表后,开始选一个下载就可以了,也可以先试听下,有些是手机铃声,并不完整,看右边的大小,可以分辨,一般零点几M的都是铃声。下面开始下载,点击歌曲名或是右边的箭头符号,会打开一个下载界面。这里可以看看右边下载箭头符号旁边有个图标的说明是带歌词的。如果要下载带歌词的这里可以注意下。如下图:
  4、点歌曲名或是下载箭头符号会连接到下载页面,直接点下载。也可以播放听一下。如下图。
  5、点了下载链接会弹出迅雷的下载保存框框,设置好保存在哪里,如下图,(一般手机,MP3,MP4,插在电脑上标示都是&可移动磁盘&。)按图上的步骤,1、点&浏览&弹出文件保存选择框,2、选择保存在你手机或MP3,MP4的移动磁盘,3、设置好后点确定,4设置好后点立即下载。等下载完,歌曲就保存到你的手机或是MP3,MP4里了,按这个操作接着下载其他的歌曲吧。
  备注:如果电脑没有安装迅雷下载操作到 第4步,点下载链接那里,弹出的是一个保存框框,同样的设置保存在那里就可以了。
  操作步骤如下图1,2,3。
  最近网友反映说用百度下载歌曲需要登录才能下载了,发现确实如此,有点不方便。所以我们提供了另一种方法下载歌曲。用360搜索的音乐搜索功能来搜歌下歌。
  1、首先打开360音乐搜索网址 http://music.so.com ,在搜索框输入你想搜的歌曲,或歌手。点搜索。(也可以从导航栏的随便听听,排行榜,歌手,这些分类里找歌曲。)
  2、如输入&一生有你&这首歌,点搜索后,会搜出歌曲列表。点歌曲右边的下载箭头符号,就会跳入到下载框框。点下载。如下图。
  3、点了下载后会跳入来源的地址下载,有些是和某某音乐合作的就会直接弹出保存框框。
  4、点了高速下载后,弹出保存框框。设置好歌曲的保存位置。手机内存卡连上电脑后,显示的是&可移动磁盘&,找到你手机内存卡保存歌曲的文件夹。然后确定。就可以下载歌曲。
[怎么下载歌曲到手机上]相关的文章
【网络基础知识】图文推荐手机MP3怎么换歌词_百度知道
手机MP3怎么换歌词
手机MP3怎么换歌词
我有更好的答案
在网上找LRC的歌词存到手机中,不知道这样可以不可以帮你解决问题.你试一下吧,现在很多机器都支持LRC了,不知道你的手机能够支持不.
采纳率:45%
你可以把原来的歌词删除,然后下载新的LRC格式的歌词重新保存上就行。但是要注意前提——歌词的名字一定要跟歌曲的名字一样。
否则的话就会显示不出来。大多数的手机都是这样,如果名字不一样就显示不出来。至于歌词,你可以用数据线或者是读卡器直接在电脑上操作,也可以之家在手机上下载然后进行连接。就是把歌词移动到歌曲的文件夹里面就行。
把原来的删除,在重新下载
为您推荐:
其他类似问题
您可能关注的内容
手机mp3的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求这首歌的下载链接。我要往手机上下载。 《梦里人》歌词是下面内样的,_百度知道
求这首歌的下载链接。我要往手机上下载。 《梦里人》歌词是下面内样的,
《梦里人》
词:赵小翔/白子/小z
我累了世界变模糊了
有人在说不用再想太多
我睡了请不要吵醒我
只想做个曾经有你的梦
不要想太多 不管别人怎么说
这是我选择的路却从没后悔过
我知道你常说不管怎样都要BE AMAN
我有更好的答案
你把它复制到txt文档里去,然后再改成你手机的歌曲格式就可以了。
加了499……的那个
阿哦。我没了你。
嗨,那可以如果可以了的话,谢谢采纳下。
采纳率:29%
来自团队:
看了下面的还真的不明的话,再看这里 怎样让歌曲与歌词同步? 下载并安装两个软件就能很方便地找到编辑好的MP3机器用的歌词了 一个是“Winamp”,另一个是“迷你歌词” “Winamp”是歌曲播放器,“迷你歌词”就是帮你下载MP3机器用的歌词的软件。 【软件下载地址:Winamp 2.95 简体中文汉化标准版
迷你歌词(MiniLyrics) 3.4.1492 破解注册 】 歌词下载到“迷你歌词”的一个文件夹“Download”里了 1、把你要下载到MP3里的歌曲复制并粘贴到“可移动磁盘”里,(如复制歌曲“挥着翅膀的女孩儿--容祖儿”:右键单击这首歌→左键单击“复制”,打开“可移动磁盘”,在空白处右键单击→左键单击“粘贴”) 2、、把上面这首歌的歌词也复制并粘贴到“可移动磁盘”里,(如复制歌曲“挥着翅膀的女孩儿--容祖儿”的歌词:右键单击这首歌的LRC格式的歌词→左键单击“重命名”→把这首歌的歌词名改为同歌曲一样的名字“挥着翅膀的女孩儿--容祖儿”→右键单击这个歌词→左键单击“复制”,打开“可移动磁盘”,在空白处右键单击→左键单击“粘贴”) 3、按上面的方法下载其它的歌曲及相应的歌词。 4、断开MP3机和你的电脑连接(在电脑右下角的地方左键单击“新硬件”,左键单击“安全删除新硬件”。) 5、拔掉插在电脑上的和MP3连接的线,再拔掉插在MP3上的线。 6、打开MP3机,打开“菜单”,选择“歌词与歌曲同步”(这一步我不太知道了,只用别人的机器试过一次,你自己在你的MP3里找到这个菜单吧) 这样你听歌的时候就应该是歌曲与歌词同步了。 参考资料:
百度连接迅雷就可以啊
我在酷狗网上都找不到阿。怎么连接
梦里人 说一声早安在那清晨
颓废demo-KENT
颓废demo-KENT
其他3条回答
为您推荐:
其他类似问题
梦里人的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。对Mp3内嵌歌词的研究
我的图书馆
对Mp3内嵌歌词的研究
最近在研究播放器和音频格式(所以最近的文章基本都是这方面的了)。然后就好奇怎么内嵌歌词。一般我们经常用到的应该都是lrc格式的外置歌词。有的播放器是不支持这种外置歌词的,比如zune,还有些手机应用,貌似苹果的一些设备也不支持(只是听说,没用过)。下面搜的文章:
---------------------------------
虽然一早已经知道MP3标签(ID3v1、ID3v2、APEv2),但之前完全不清楚有Lyrics3v2的存在。
MP3文件的歌词分为两种:外置歌词文件和内嵌的歌词。
外置的歌词主要指.lrc格式的文本文件;
而内嵌歌词包括ID3v2 Synchronized Lyrics、ID3v2 Unsynchronized
Lyrics、Lyrics3v2
开始只是无意间发现凡是用千千静听内嵌歌词的MP3文件,到Winamp里都不能正常显示APEv2
Tag,后来因千千静听的强制弹出广告而转用foobar2000,发现foobar2000中也无法显示同步歌词,放到MP3随身听中也一样,可在千千
静听里查看又明明是有“LYRICS”字段。抱着试验心态清除标签再重新用foobar2000编写标签,将修改后的文件放入MP3随身听中可以正常显示
同步歌词。当时也没多想,觉得反正也是要换掉千千静听,不用管这个问题。直到昨天朋友从MSN发送了一首MP3文件给我,foobar2000完全显示不
了朋友一口咬定的内嵌歌词(P.S.朋友用的是千千静听),好奇用Mp3tag查看发现有个叫“Lyrics3v2”的标签。
Google得知Lyrics3v2和ID3v2两者(ID3v2 Synchronized Lyrics、ID3v2
Unsynchronized
Lyrics)不同,是以歌词信息的形式单独出现的,并不依附于某个MP3标签。Lyrics3v2位置在APEv2标签(P.S.如果有的话)之后、
ID3v1之前;开头标记是"LYRICSBEGIN"、结束标记
为"LYRICS200"。Lyrics3v2网络上说很少有播放器支持,搞不懂千千怎么想的。
------------------------
------------------------
内嵌歌词的方法:
http://tieba.baidu.com/p/&
(百度的帖子,没验证
下面是比较全面的方法,应该可以:
MP3越积越多,关联的歌词同样多不胜数,原来的做法是歌词集中放置以方便管理,无奈重名的歌曲或多个版本不可避免。后来因为使用BenQ的MP3这才注
意到可以把歌词嵌入到MP3文件中。歌词嵌入MP3中,不止使歌词能跟随MP3文件自由移动,更方便了管理,节约了空间,如果需要独立的歌词文件随时还可
因为使用Foobar2000 + MiniLyrics的组合,有了意外的收获--可以制作MP3歌词的双语同播效果。
一般工序和工具
主要工具:千千静听、Foobar2000、迷你歌词(MiniLyrics)
⑴编辑MP3的标签--千千静听
好的标签可以方便千千静听等软件在播放MP3文件时搜索并下载正确的歌词,另外,即使不需要额外的软件支持,仅在Windows
XP的资源管理器中就能显示标签信息。
尽管可以使用ASCII的ID3v1标签,但仍强烈建议写入类型使用ID3v2 &
APEv2,编码使用UTF-16,据说UTF-8不被有些播放器识别。
如果需要的话同时还可以插入专辑的图片,要求小于40KB。
标签修改软件的比较
Foobar2000目前使用ID3v2.4版本的标签。如果使用Foobar2000来修改,就必须添加APEv2标签,否则回到千千静听中将看不到标
签信息,这是因为在Foobar2000中,Tagging-&MP3 TAG
Type…的默认选项只有ID3v2,同时选中APEv2进行更新就可以了,每个文件都是如此。在实践中APEv2标签并不是必须的,因为资源管理器优先
识别ID3v1,其次是ID3v2,只有UFT-16的ID3v2标签才能被三方同时识别!Foobar2000的标签常常不被资源管理器和千千静听识
别,应该是未使用UTF-16编码的缘故。通过插件功能的实现,在制作标签时还可以进行编码的选择和转换。
如果使用千千静听修改标签,可以选择使用UTF-16编码(最优),同时写入ID3v2 &
APEv2(实际只写入ID3v2,Foobar2000中查看MP3文件属性时已确认。)尽管Foobar2000的标签编辑能力更强,但推荐使用千千
静听修改,原因在于包括添加静态歌词在内,使用千千静听修改后不会造成动态歌词的丢失。静态歌词要在标签修改确认以后再添加,同步歌词更是要放在最后,否
则一切全白忙。
由于ID3v1不支持Unicode的编码,所以有些字符在使用它后变为乱码,又因为在多数情况下它被优先显示,所以它的存在反而不利。而如果使用第3种同步歌词的话会自动换为ID3v1标签,也就容易出现乱码了。
⑵下载并编辑歌词--千千静听或MiniLyrics
如果标签编辑的好,千千静听和MiniLyrics都可自动搜索匹配的歌词,如果找不到还可以自己google。
有关歌词主要是编辑LRC文件,纯文本,Unicode(推荐)或UTF-8编码。难点在于日文和韩文歌词,由于编码问题可能不能被正确保存和辨识。
在使用Winamp的时代,记录和播放歌词都需要使用外挂程序,最早的LRC编辑器现在已经不再使用,不止是因为它不支持Unicode的编码,更为重要
的原因是千千静听本身的功能已经足够强大,歌词自动下载,时码记录和修改同样便捷。在千千静听中,因为Unicode的支技(建议使用UTF-16),可
以多语言混排,MiniLyrics如果使用了UTF-8,几乎是无法更改的,而UTF-8常显示乱码。
在制作LRC文件方面,迷你歌词有更大的优势,如果仅是中文歌词(包括英文),可以直接用它编辑、修改和记录时码--已经确认在Foobar2000中搜索歌曲时不会影响到新插入时码的准确度。
How do I use Lyrics Editor to create LRC lyrics? 'Lyrics Editor'
will help you to create or edit the synchronized lyrics.
Windows Media Player, foobar2000 is suggested to be
used, when you create synchronized lyrics. If you use
Winamp, please don't seek or jump music, or the timeline will
become imprecise.
自始至终无所停顿的记时码是很难做到的,所以说MiniLyrics更有优势,它可以随时停下来修改,而不必从头开始。但是,保存并不是很方便,因为在播放MP3文件的同时并不能写入其中,所以如果有修改还是应该保存为LRC文件,以防止修改无效。
LRC文件中尽管可以保存多版不同语言的歌词,但在使用千千静听关联播放时,只播放放在后面的语言版。但还是建议将不同的语言版本保存在同一个文件中,分
段存放;不建议使用压缩方式。在使用Mini歌词的播放器中两个语言的歌词会因为时间相同所以会被同时送屏,而千千静听中只显示最后的版本。
⑶将歌词插入音频文件
千千静听、Foobar2000、MiniLyrics(迷你歌词)、BenQ的Q-Music等都可以插入歌词,后两者插入动态歌词(或称同步歌词)不经任何外挂或插件即能被Windows
Media Player识别和播放,同样支持Unicode编码。
MiniLyrics supports to save/load ID3v2 synchronized lyrics and
ID3v2 unsynchronized lyrics, Lyrics3v2 lyrics, So you could
歌词的正确导入顺序:
①千千静听中先把外文版的LRC歌词(Unicode编码)保存到MP3文件中。Foobar2000的属性中手动添加UNSYNED
LYRICS也有成功的时候。千千静听中LYRICS及UNSYNED
LYRICE两个字段在高级模式下都可见!
②打开挂有迷你歌词的播放器(这里可以是Foobar2000),通过歌词播放窗口将歌词保存为同步歌词。
③回到千千静听中把中文版的歌词保存到MP3中。当然也可以直接在MiniLyrics中编辑替换掉同步歌词。
无论静态或动态都可以保存多个版本的,在使用Q-Music时“语言”(编码)选择也是必要的,这在迷你歌词中也有所体现,只是会有混乱的情况存在,如果
不经千千静听而直接存入动态歌词更是如此。不要使用迷你歌词写入静态歌词,因为无论是否能跟记时码,通过它写入后都没有了时间,完全静态了;但
Foobar2000的属性中写入成功,记得同时更新APEv2标签。Foobar2000的标签编辑能力更强,但很多字段需要自己添加,包括
UNSYNED LYRICS。
双语歌词的同播
双语同播一直没有好的方法,从网上下载的文件在做双语的时候也都是一行写两种语言。不喜欢看这种长句,试过分成两块时码区,一区放一种语言的,然而在千千静听中只能显示最后的区块,迷你歌词可以同时显示,但仍不是我所希望的效果。
双语同播,这是一个意外的收获。其实只要按上述的步骤修改过MP3文件,而且静态歌词和动态歌词分别是两种不同语言的话,只要在Windows
Player中播放该文件,加上正在运行的迷你歌词你就能看到双语歌词在同一时间里播放。当然,此时用迷你歌词播放LRC文件也是可行的。这两个软件也都
可以选择字幕(歌词)的语言。因为静态歌词的更新会冲掉动态歌词,所以其它可变动的信息可以写入动态歌词,也就是说建议动态歌词保存中文版。
先确定标签再插入歌词,建议使用UTF-16编码的标签,因为ASCII码的标签仅能保持英文件内容不变。
因此,应当使用ID3v2 &
APEv2的写入方式,因为ID3v1不支持Unicode的编码。
必须先有静态歌词才能添加动态歌词,动态歌词编辑时可换作其它语言版本。
迷你歌词中的静态歌词是指不带时码的一种歌词,所以它的导出是没有意义的。
如果MP3文件确认已经修改完毕,强烈建议把它的属性改为只读。
静态歌词同样可以包含时码,但通过MiniLyrics存入的静态歌词是铁定不含时码信息的,所以在使用MiniLyrics修改过静态歌词后记得一定要先保存为LRC文件或复制全部,然后再到千千静听或Foobar2000中导入。
如果能熟练使用Foobar2000,则可以完全摆脱千千静听的使用。现在之所以没有完全放弃千千静听还是因为UTF-16编码的问题,Foobar2000等变更编码不是很有效。同时使用该两播放器的时候曾两度死机,尽管不是经常发生,但总是不爽。
本文难免纰漏,所以会有修改的情况。
****************
刚才试了下,验证了文章一。还有ipod和iTunes貌似不支持同步歌词(...不知道为什么),WMP支持内嵌同步歌词,以上都是用的是ID3V2标签类型。果然lyrics3V2支持的话需要特殊对待。
这个插件下载:http://www.crintsoft.com/zh_CN/MiniLyrics_download.htm
当然了,用这个也存在缺点,就是不利于网络传输,貌似歌词加在数据的末尾。
--------------
ID3v1.1, ID3v2.2, ID3v2.3 and
ID3v2.4 tags区别
ID3v1 & ID3v1.1
  MP3格式标准里并没有特别定义储存曲目相关讯息的结构,于是1996年有人提出了一种解决办法,即在mp3档案末尾新增一些额外的数据(128
byte)来储存曲名、演唱者、专辑名等讯息,这就是ID3(v1)。
  ID3v1的字列(field)名称和每个字列的大小都是类BIOS的,如下所显示
Song title——30 characters&
Artist——30 characters&
Album——30 characters&
Year——4 characters&
Comment——30 characters&
Genre—— byte
   ID3v1.1和ID3v1唯一区别就是多了个Album
track字列,实际上是从上面说的Comment字列末尾抽出两个字符用来存放Album
track讯息。ID3v1(v1.1)大家一定很熟悉,因为MP3中早已经广泛的使用ID3,甚至很多人误以为这是mp3原有的的标准(事实上mp3格
式标准里并不包含ID3)。虽然广为使用,但ID3v1,ID3v1.1有明显缺陷。字列名和字列长度都是类BIOS死的,不可增强,缺乏灵活性。而且
30个字符实在十分有限,想必很多人碰到过title或者artist太长被截断的情况吧。所以有人提出新的ID3v2格式,试图解决这些问题,增强
ID3的功能。
  虽然从名称上ID3v2好像只是ID3v1的一个升级,实际在格式定义上ID3v2和
ID3v1完全不同,ID3v2应该算一个全新的tag系统。如果用过WINAMP的ID3 tag
editor,就知道ID3v2和ID3v1最直观的区别是新增加了一些文本字列,譬如composer、conductor、media
type、copyright
message等等。但这不是重点,相较于ID3v1,ID3v2最大的改进应该是极大的增强了灵活性和可括展性,不仅每个字列的长度是可增强的(再也不
必为ID3v1 30个字符的限制而烦恼了),而且用户还可以很容易的新增自订字列。
tag支持unicode,可以包含歌词(包括同步讯息),曲目的volume、balance、equalizer、reverb设定讯息,甚至可以插
入图片,支持连接外部讯息和网页……还有很多,有兴趣的可以看这里([url]http://www.id3.org
/frames.html[/url])。
  看上去ID3v2功能强大,真是不错,不过凡事都有两面性,ID3v2繁多的功能也带来一个
负面问题,就是使得ID3v2太过复杂,实现起来比较困难,一个单纯实现所有ID3v2标准功能的程序就得100多K(FB2K主程序也就200多K)。
而且有些功能也并不十分合适,譬如把图片嵌入到音濒档案中就不是一个好主意,你需要另外编写程序从音濒档案中提取图片,而且也造成播放音濒档案时更容易出
  还有一点值得注意的,ID3v2不像ID3v1储存于在档案末尾,而是插入到音濒档案的最开头。原本的初衷是考虑网络上播放档案时可以先接收到相应tag讯息。实际套用时却发现这么处理是弊大于利。
  1、兼容性变差。时常看到有人反映因为插入ID3v2 tag而造成音濒档案不能正常播放的。
  2、写入tag速度慢。由于tag放在档案开头,所以第一次插入tag必须得重写整个档案,严迭影响速度,虽然ID3v2采取了的一些方法,避免每次修改tag都必须重写整个档案(大多数情况下不会,某些情况下还是有可能),但同时也增加了程序处理的复杂度。
  3、耗费临时空间。由于插入tag得重写整个档案,如果你向一个大档案新增ID3v2
tag,必须得有充足的磁盘空间,否则就会写入失败,甚至会造成源文件的损坏。
  (注:最新的ID3v2.4标准已经可以选项把tag存放在档案末尾。)
   所以,ID3v2虽然初看起来不错,但并不受欢迎,在Hydrogenaudio
Forums上用ID3v2做关键词搜寻一下就知道了,很多人毫不吝惜的把「SHIT」的光荣称号授予了ID3v2。事实上目前流行的音濒格式(无论有损
无损),只要有自己的tag标准定义的,没有一个选项ID3v2;标准版Foobar2000也不支持ID3v2,不过倒是有个第三方插件可以读写MP3
和AAC的ID3v2 tag。
尽管如此,ID3v2在硬件支持上还是颇具优势,目前绝大多数MP3随身听只支持ID3v1和ID3v2,如果你有这样的便携式硬设备,那ID3v2几乎是你的唯一选项。
目前tag格式没有一个统一标准,不同音濒格式使用的tag也不尽相同。现在比较流行的tag格式有ID3和APE(这个APE和平常说的无损音濒格式APE可不一样),它们各自也还有不同的版本,下面分别做简要介绍。
●APEv1 & APEv2
  APE也是一种tag格式,如果我没搞错,应该是Monkey's
Audio的APE最先采用,是不是因此而得名我就不太清楚了。APE用的是APEv1,后来在APEv1基础上改进又有了APEv2,主要区别就是两点:
  1、APEv2标准里增加了一个APE Tags Header
  2、APEv2采用UTF-8编码,使得可以实现unicode支持
tag具有与ID3v2一样的灵活性和可括展性,字列名可自订,字列长度可增强,同时格式定义又不像ID3v2那么繁琐。APE
tag的格式很简单,实现起来也很方便,tag存放位置是可选的,既可以在档案头也可以在档案尾(推荐在档案尾),所以有不少人对APEv2比较倾瞇。譬
如,MPC(MusePack)把ID3v1和APEv2作为标准支持的tag,Foobar2000也把APEv2作为标准的tag系统。
7.4.3 ID3V2标签
年,ID3V2作为新的标准诞生了,尽管其沿用了"ID3"的名称,但是ID3V2和ID3V1并没有太多联系。ID3V2定义在MP3文件的头部,这与
ID3V1不同。ID3V2是变长的,这一特性使ID3V2具有良好的扩展性,甚至个人也可以定义ID3V2中的帧,只要符合ID3V2的布局即可。
ID3V2的结构图如图7-8所示,其中深色标识的结构是可选的。在ID3V2中,比特顺序采用Big
endian方式排列,也就是高字节存储在高位。ID3V2的结构相对于ID3V1复杂很多,这里重点介绍ID3V2头和ID3V2帧。
图7-8 ID3V2的结构图
1. ID3V2头
ID3V2头(Header)的长度是固定的,共10个字节,其布局如图7-9所示。
ID3V2头的布局前3个字节总是"ID3",可以通过检查这个文件标识来判断是否是ID3V2头。随后2个字节是ID3V2的版本,其中第4个字节代表
ID3V2的主版本号,第5个字节代表ID3V2的修订版本号。目前ID3V2的2.3和2.4版本应用最广泛。随后的一个字节是标志位,目前此字节的前
4位在使用,其他位为0,标志位的第2比特标识了ID3V2头后面是否有扩展头,标志位的第4位标志了ID3V2最后是否含有Footer。最后的4个字
节标识了ID3V2的大小,其中包括10个字节的ID3V2头。由于每个字节的第1位永远是0,因此只有28个字节用来表示大小。计算大小时可以采用下面
int tagSize = (header[9] & 0xff) + ((header[8]
& 0xff) &&7)
+ ((header[7] & 0xff)
&&14) + ((header[6] &
0xff) &&21);
扩展头(Extended
Header)包含了更多的数据信息,这些数据是对ID3V2头的补充,但是并非解析MP3文件的关键数据。
3. ID3V2 帧
个ID3V2标签含有一个或者多个ID3V2帧,每个帧由ID3V2帧头和帧体构成。ID3V2帧头由4个字节的帧ID、4个字节的大小标志和2个字节的
标志位组成,共计10个字节。帧头的布局如图7-10所示。其中帧ID由4个字符组成,字符可以是0~9和A~Z,例如TIT2、TALB等。紧随其后是
4个字节的尺寸标识,4个字节的每个比特都可以使用,共计32位用来表示帧的大小。需要注意的是,这个大小表示的是帧体的大小,不包括帧头的10个字节,
因此整个尺寸应该是帧体的大小加上10个字节。标签帧并没有固定的顺序要求,TIT2可以出现在TALB前面,也可以出现在TALB的后面。
图7-10 ID3V2帧头的布局
ID3V2的帧体由字节数组构成,其内容一般是与帧ID对应的。例如,TIT2帧体内存储了歌曲的标题,TALB帧体内存储了歌曲的专辑信息。帧体的第1个字节标识了字符的编码方式,目前有4种编码方式可用。
代表字符使用ISO-8859-1编码方式;
代表字符使用UTF-16编码方式;
代表字符使用 UTF-16BE编码方式;
代表字符使用UTF-8编码方式。
在读取帧体内容时,应该按照上面的编码对应表首先确定编码方式,然后再生成相关的字符串。对于TIT2和TALB等帧ID来说,读取其内容比较简单。对于USLT(对应歌曲的歌词信息)等结构较复杂的帧,需要仔细研究其格式才能将内容从帧体中读取出来。
ID3V2帧后面可以存放填充(Padding)位,填充位的值只能是0。填充位使得ID3V2帧的大小比ID3V2计算得到的大小要小一些,也就是说,
留下了一些空白的空间,这些空间可以用来增加一些额外的帧信息。由于增加的信息写在一些空白的空间内,因此无须重写整个文件,这也就是填充存在的重要意
5. ID3V2尾
尾(Footer)是可选的,有时候可能需要从MP3文件的尾部向前搜索ID3V2的位置,这时候ID3V2的存在就可以大大地加快搜索的速度。ID3V2
尾和ID3V2 头的内容是一致的,只是文件标识部分由"ID3"改成了"3DI"。
的结构相对要复杂一些,在设计ID3V2类时,主要考虑了ID3V2的大小和ID3V2帧。ID3V2的大小可以帮助我们快速定位到MP3帧的起始位
置,ID3V2帧内存储了MP3文件的元数据,包括歌曲名称、歌手和专辑等。ID3V2类定义了一个HashMap类型的成员变量,用来存储ID3V2帧
数据,以ID3V2帧ID为键,以帧的内容为值。
 ID3v2信息的提取
  MP3文件的
“ID3v1信息”。这个信息结构提取起来非常容易,写入到文件也不是什么难事。但是它的信息安排和可扩展性却非常之差(只能128个字节)。就如你所
知,MP3文件还有另外的一个信息结构,这个结构具有更好的可扩展性,而且存储的容量也不受限制(也就是总长度不固定)。这个信息就是
ID3v2信息(相对ID3v1而言)。由于ID3v1信息存储在了文件的最后128个字节里,那么ID3v2就不得不放弃选择存储在文件的末尾了,于是
它被存储在了文件的起始位置。
  ID3v2信息的存储和读取远远要比ID3v1信息复杂的多。这是因为ID3v2信息不再固定,而且由于这段信息存储在了文件的首端,所以重新写入的时候也远比ID3v1麻烦的多。
 我用尽可能清楚而且简练的话,给大家讲一下ID3v2信息的读取方法。ID3v2到现在一共有4个版本,不过比较流行的MP3播放软件一般只支持第3
版,即ID3v2.3。我们要读取的就是ID3v2.3信息。ID3v2信息包括两个部分,一个部分是标头信息,另一个部分是标体信息。其中标头信息占固
定的十个字节,
  每个ID3V2的标签部一个标签头和若干个标签帧或一个扩展标签组成关于曲目的信息如标题、作者等都放在在不同的标签帧中,扩展标签头和标签帧关不是必要的,但每个标签至少要有一个标签头和标签帧一直顺序存放在MP3文件首部。
  它的结构如下:
  (一)、标签头
  Private Structure ID3v2Header
    Dim Header() As Byte'ID3v2标识位,应该是“ID3”三个字母为对
    Dim Ver As Byte'版本号ID3V2就记录3
    Dim Revision As Byte’副版本号此版本记录为0
    Dim Flag As Byte‘存放标志的字节,这个版本只定义了三位,稍后详细解说
    Dim Size() As Byte’标签大小,不包括标签头的10个字节(但是有的文章说包括)我是通过核实
才这样说的,看看源代码就知道了
  End Structure
  这十个字节的信息作用:
  1、Header(2),一般为“ID3”,否则没有ID3V2信息
  2、Flag 标志字节:标志字节一般为0,字义为abc00000
  a-表示是否使用Unsynchronisation
  b-表示是否有扩展头部,一般没有(WINAMP也没有)所以一般不设置
   c-表示是否为测试标签(99.9%的标签都不是测试用的,所以一般不设置)
  3、Sixe(3) 标签大小:一共四个字节,但每个字节只使用7位,最高位不使用恒为0,所以格式如下:
    0xxxxxxx 0xxxxxxx 0xxxxxxx 0xxxxxxx
   计算大小时要将0去掉,得到一个28位的二进制数,就是标签的大,计算公式如下
     ①、VC的:ID3size =(Size[0]&0x7F)*0x200000
+(Size[1]&0x7F)*0x400
+(Size[2]&0x7F)*0x80
+(Size[3]&0x7F);
  ②、VB的:ID3size =Size(0) * (2 ^ 21) + Size(1) * (2 ^ 14) + Size(2)
* (2 ^ 7) + Size(3) * (2 ^ 0)
  VB的我已在类中声明了一个函数ByteToLong,很方便,直调用就OK了。
  通过解析这段标头信息我们可以知道一个MP3文件是不是有ID3v2信息,如果有我们就知道了ID3v2的数据体的总长度。
  (二)、标签帧
    接下来我们要解析ID3v2的
标签帧,别担心,虽然复杂,但也没你想象的那么的痛苦。ID3v2的数据体又分为很多相同的数据结构。
   每个标签帧都有一个10个字节的帧头和至少一个字节的不固定长度的内容组成,它们也是顺序存放在文件中,和标签头和其他的标签帧也没有特殊的字符分
隔,得到一个完整的帧的内容只有从帧头中的到内容大小 后才能读出,读取时要注意大小,不要将其它的帧的内容或帧头读入。帧的定义如下:
  Private Structure ID3v2Frame
    Dim FrameID As String‘用4个字符标识一个帧,说明其内容,常用的标识对照表见附表
    Dim Size() As Byte’4个字节 帧内容的大小,不包括帧头,不得小于1,计算时也用上面的公式计算
    Dim Flags() As Byte’2个字节 存放标志,只定义了6位,稍后详细解说
  End Structure 
   1、FrameID 帧标:用四个字符标识一个帧的内容含义,常用的对照如下:
  TEXT: 歌词作者 TENC: 编码
  WXXX: URL链接(URL) TCOP: 版权(Copyright)
  TOPE: 原艺术家 TCOM: 作曲家
  TDAT: 日期 TPE3: 指挥者
  TPE2: 乐队 TPE1: 艺术家相当于ID3v1的Artist
  TPE4: 翻译(记录员、修改员) TYER: 年代相当于ID3v1的Year
  USLT: 歌词 TALB: 专辑相当于ID3v1的Album
  TIT1: 内容组描述 TIT2: 标题相当于ID3v1的Title
  TIT3: 副标题 TCON: 流派(风格)相当于ID3v1的Genre见下表
  TBPM: 每分钟节拍数 COMM: 注释相当于ID3v1的Comment
  TDLY: 播放列表返录 TRCK: 音轨(曲号)相当于ID3v1的Track
  TFLT: 文件类型 TIME: 时间 
  TKEY: 最初关键字 TLAN: 语言
  TLEN: 长度 TMED: 媒体类型
  TOAL: 原唱片集 TOFN: 原文件名
  TOLY: 原歌词作者 TORY: 最初发行年份
  TOWM: 文件所有者(许可证者) TPOS: 作品集部分
  TPUB: 发行人 TRDA: 录制日期
  TRSN: Intenet电台名称 TRSO: Intenet电台所有者
  TSIZ: 大小   TSRC: ISRC(国际的标准记录代码)
  TSSE: 编码使用的软件(硬件设置) UFID: 唯一的文件标识符
  AENC: 音频加密技术    
    其中要说明的是这个FrameID,在ID3v1里我们是根据每一个信息所占用的固定的字节数和位置来判断他是哪个信息的。而ID3v2为了提供
更好的可扩展性,把这些信息变得“动态”化了,因为长度并不是预先设定好的,而是在size[4]里存储的。这样长度就可以不再固定了。我觉得在我们自己
定义文件的时候ID3v2和ID3v1也是值得我们考虑的一个方面。如果结构很小而且存储的量也不大,我们可以采用ID3v1的信息存储方式。如果存储的
信息不固定,而且要求有很好的可扩展性,那么ID3v2当然成了首选。实际上,现在很多格式的文件的存储方式都是ID3v2的存储方式非常接近的。
  2、Size() 帧内容大小:不再是总标头那样的每个字节只取后7位了,它是按照正常的8位存储的。得到帧内容的大小的格式如下 :
  xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
   计算成整形,公式如下:
     ①、VC的: FSize = Size[0]*0x + Size[1]*0x10000 +
Size[2]*0x100 + Size[3];
  ②、VB的:ID3size =Size(0) * (2 ^ 21) + Size(1) * (2 ^ 14) + Size(2)
* (2 ^ 7) + Size(3) * (2 ^ 0)
  VB的我已在类中声明了一个函数ByteToLong,很方便,直调用就OK了。
  3、Flags() 标志:只定义了6位,另外10位为0 但大部分的情况下16位都为0就可以了,格式如下:
   a-标签保护标志,设置时认为此帧作废
  b-文件保护标志,设置时认为此帧作废
  c-只读标志,设置时认为此帧不能修改(目前好像没有看到过)
  i-压缩标志,设置时一个字节存放两个BCD码表示数字
  j-加密标志(好像不太实用)
  k-组标志,设置时说明此帧和其它的某帧是一组。
    详细你可能到www.ID3.org去了解一下。
  4、帧内容(数据体)
   标头后面就是数据体了,我们提取数据体的前十个字节,我们知道了这个数据结构存储的FrameID是TIT2,查上面的表,说明这个数据结构存储的
是歌曲名信息。大小是00 00 00 17,换成十进制就是23。也就是歌曲名是这个子标头后的23个字节的信息。也就是:“Take Me
To Your Heart ”。接下来的一个数据结构的FrameID是TPE1,说明是歌手名,而大小是00 00 00
17,说明这个数据体有23个字节,也就是:“Michael Learns to
Rock”。依次类推。这里需要大家知道的是一个汉字占用两个字节。在写入时,要计算字节数,我已编写了一个函数ByteSize,大家可以直接使用了。
   还有特别要提醒大家的是,ID3v2的注释信息(FrameID是COMM)的数据体的前四(但经我测试为前5个字节)个字节,并不是注释内容,而
是注释使用的自然语言,这个例子里我们看到是:”eng\0”,我们要跳过这四个字节的信息进行解析。此外ID3v2的歌曲类型
Genre(FrameID是
TCON)的存储也不太一样的。由于很多MP3播放器的写入方式并不是非常一致,而在Genre写入的也不一致。比如,这首歌的ID3v2的Genre是
Classic Rock,其实有的还会写入成:(1),或者1,还有(1)Classic
Rock,所以格式五花八门,我们要在解析的时候注意一下。还有,值得一提的是winamp在保存和读取帧内容的时候会在内容前面加个'\0',并把这个
字节计算在帧内容的大小中。所以前面提到的歌手名“Michael Learns to
Rock”本身应该22个字节,可是却占了23个字节。
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢}

我要回帖

更多关于 怎样才能下载歌曲 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信