我们都知道mp3能储存音乐,其实mp3文件里还能储存“歌手、专辑、曲风、时长”等很多信息。这些信息以一次的格式保存在文件头部和尾部。很多播放器就是根据这些信息来下载歌手头像和歌词的,但很多JS也看到了商机,他们把这些信息填充自己的广告,这样就可以免费传播。最近入手WP7,本来想体验下Zune的魅力,没想到一打开音乐,歌曲信息全变成了一些网址,相当恶心。
幸好找到了ruby-mp3info,迅速对mp3文件做了一次整容。
ruby-mp3info介绍
- 纯Ruby编写
- 读底层信息如比特率,时长等
- 可读写删除id3v1 and id3v2 标签
- 现在可读VBR文件
安装
先到https://github.com/oldsong/ruby-mp3info这里下载,然后解压。
$ ruby install.rb config $ ruby install.rb setup # ruby install.rb install
不要“gem install ruby-mp3info”安装,这个gem已经有1年没有更新,有几个bug。
示例
require "mp3info"
#指定编码并打开文件,支持utf-8,gbk,gb2312。默认为iso-8859-1
mp3 = Mp3Info.open("myfile.mp3", :encoding => 'utf-8')
# 选取并显示所有信息和标签
Mp3Info.open("myfile.mp3") do |mp3info|
puts mp3info
end
# 读/写 使用mp3.tag来读取tag1和tag2
# 读时 tag2 优先 tag1
# 写时, 两者均写。
Mp3Info.open("myfile.mp3") do |mp3|
puts mp3.tag.title
puts mp3.tag.artist
puts mp3.tag.album
puts mp3.tag.tracknum
mp3.tag.title = "标题"
mp3.tag.artist = "艺术家"
end