用wxRuby作了个简易界面:# !/usr/bin/ruby -w #
# Ruby ID3 Tag v1.1 Library #
# Version: 0.90 #
# (c)2006 Suninny's Rails Theme #
# http://blog.csdn.net/rails #
# ####################################
class ID3
def initialize(filename)
@filename = filename
begin
File.open(filename) do | file |
file.seek( - 128 , IO::SEEK_END)
data = file.read
tag, title, artist, album, year, comment, genre =
data.unpack( " A3A30A30A30A4A30C1 " )
if tag != ' TAG '
clear
else
@title, @artist, @album, @year, @comment, @genre =
title, artist, album, year, comment, genre
end
end
rescue
clear
end
end
attr_accessor :title, :artist, :album, :comment, :year, :genre
def write
File.open(@filename, " r+ " ) do | file |
file.seek( - 128 , IO::SEEK_END)
data = file.read
tag, title, artist, album, year, comment, genre =
data.unpack( " A3A30A30A30A4A30C1 " )
if tag == ' TAG '
file.seek( - 128 , IO::SEEK_END)
else
file.seek(0, IO::SEEK_END)
end
file.write bin
end
end
def bin
title = @title + ( " " * 30 )
artist = @artist + ( " " * 30 )
album = @album + ( " " * 30 )
comment = @comment + ( " " * 30 )
[ ' TAG ' , title, artist, album, @year, comment, @genre].
pack( " a3a30a30a30a4a30C1 " )
end
def clear
@title = @artist = @album = @year = @comment = ''
@genre = 0
end
end
[Ruby乐趣]读写Mp3 ID3标签
最新推荐文章于 2021-03-02 09:00:14 发布