人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Rubyでmp3のid3v2tagの書き換えを行いたいです。どうするのがいいでしょう。ちなみに、Rubyのバージョンはruby 1.8.1 (2003-12-25) [i386-mswin32]です。

●質問者: TG-IF
●カテゴリ:コンピュータ
✍キーワード:i386 MP3 Ruby Ruby 1.8 バージョン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● k_ahiru
●20ポイント

http://rubyforge.org/projects/mp3taglib/

RubyForge: mp3taglib: Project Info

http://ruby-mp3info.rubyforge.org/

ruby-mp3info-0.6.13 Documentation

◎質問者からの返答

既に二つともチェックしてました。

前者はコンパイルできませんでした。

フリーのbcc32しかコンパイラがないのですが、コンパイルできますか?

後者はid3v2tagは読めますが、書けません。


2 ● mi-si
●30ポイント

http://www.geocities.jp/bywnn498/mp3/42_id3v2.htm

id3v2tagは、mp3infpのヘッダが編集可能なライブラリが既にありますので、Win32+Rubyにこだわるには何かしら理由があると思うのですが、タグの仕様書を見ながら、ヘッダ解析プログラムを作るのが良いかと思うのですけども。

http://win32lab.com/fsw/mp3infp/

Win32工作小屋 - mp3infp

Windows上での限定利用であれば前述のmp3infpのLibrary(Win32API)が利用出来ます。

◎質問者からの返答

mp3infpからAPI呼んで処理させてみたのですが、あんまりうまく動いてくれませんでした。

require ’Win32API’

class Mp3infp

def Mp3infp.Load(hWnd, szFileName)

win = Win32API.new(”mp3infp”, ”mp3infp_Load”, ’lp’, ’i’)

win.call(hWnd, szFileName)

end

def Mp3infp.GetValue(szValueName, buf)

win = Win32API.new(”mp3infp”, ”mp3infp_GetValue”, ’pp’, ’i’)

win.call(szValueName, buf)

end

end

p Mp3infp.Load(0, ’E:¥a.mp3’) # => 0

p buf = [nil].pack(’p’) # => ”¥000¥000¥000¥000”

p Mp3infp.GetValue(’TIME’, buf) # => 1

p buf # => ”h¥244¥020¥003”

多分読込には成功していると思うのですが

bufがchar**型で実体に戻せなくてちょっと困ってしまってます。

コマンドラインでid3tagv2を書き換えられるツールがあれば、

``でコマンドを実行させるって言う方法でもいいのですけど。

何かよい方法があれば引き続きお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ